Dja*_*ave 14 php laravel eloquent
我刚刚开始使用Laravel所以请原谅任何noobness.
我有一个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');
}
Run Code Online (Sandbox Code Playgroud)
所以我认为我有上述权利.
但是当我这样做时:
$users = User::with('orders')->find(1);
return $users;
Run Code Online (Sandbox Code Playgroud)
我得到Call to a member function addEagerConstraints() on null.
但是,如果我以相反的方式做到这一点,那么效果很好:
$orders = Order::with('User')->get();
return $orders;
Run Code Online (Sandbox Code Playgroud)
我做错了什么/我不懂什么?!或者我的问题比我想象的还要大?
数据库:

Mar*_*łek 54
问题是你没有return你的orders关系.它应该是:
public function orders(){
return $this->hasMany('Order');
}
Run Code Online (Sandbox Code Playgroud)
您还应该使用区分大小写的关系.你表明:
$orders = Order::with('User')->get();
Run Code Online (Sandbox Code Playgroud)
工作,但你应该使用
$orders = Order::with('user')->get();
Run Code Online (Sandbox Code Playgroud)
以避免将来对您的数据库进行额外的查询
| 归档时间: |
|
| 查看次数: |
12985 次 |
| 最近记录: |