我刚刚开始使用 Laravel,所以请原谅任何菜鸟。
我有一个User
and 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;
I get Call to a member function addEagerConstraints() on null
.
但是,如果我反过来做,效果会很好:
$orders = Order::with('User')->get();
return $orders;
我做错了什么/我不明白什么?!还是我的问题比我想象的要严重?
数据库:
问题是你没有return
为您orders
关系。它应该是:
public function orders(){
return $this->hasMany('Order');
}
您还应该在使用关系时区分大小写。你展示了:
$orders = Order::with('User')->get();
正在工作,但你应该使用
$orders = Order::with('user')->get();
以避免将来对数据库进行额外查询
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)