Подтвердить что ты не робот

Laravel приводит к возврату null при использовании 'with'

Я только начинаю с Laravel, поэтому, пожалуйста, простите любую пустоту.

У меня есть модель User и Order, пользователь имеет много порядков:

# Inside User model
public function orders(){
    $this->hasMany('Order');
} 

# Inside Order
public function user(){
    return $this->belongsTo('User');
}

// Not sure if this is upsetting anything (also in Order)
public function products(){
    return $this->belongsToMany('Product');
}

Итак, я думаю, что я прав.

Но когда я это делаю:

 $users = User::with('orders')->find(1);
 return $users;

Я получаю Call to a member function addEagerConstraints() on null.

Однако, если я делаю это наоборот, он отлично работает:

$orders = Order::with('User')->get();
return $orders;

Что я делаю неправильно/что я не понимаю?! Или моя проблема больше, чем я думаю?

База данных:

enter image description here

4b9b3361

Ответ 1

Проблема в том, что у вас нет return для вашего отношения orders. Это должно быть:

public function orders(){
    return $this->hasMany('Order');
} 

Вы также должны использовать свои отношения с регистром. вы показали:

$orders = Order::with('User')->get();

работает, но лучше использовать

$orders = Order::with('User')->get();

чтобы избежать дополнительных запросов к вашей базе данных в будущем