所以我有两个模型,一个User和一个Order(一个用户有多个Order)
在我的模型中,关系设置如下:
用户模型
public function orders()
{
return $this->hasMany('App'Order');
}
<<p> 订单模型/strong> public function user()
{
return $this->belongsTo('App'User');
}
我使用以下代码将当前登录的用户附加到订单。
Auth::user()->orders()->attach($order_id);
我相信这是正确的,但我得到这个错误时,执行代码:
有人能解释一下我做错了什么吗?调用未定义方法Illuminate'Database'Query'Builder::attach()
attach
方法用于多对多关系。要将订单与场景中的用户关联起来,您应该能够通过以下方式保存订单模型:
$order = App'Order::findOrFail($order_id);
Auth::user()->orders()->save($order);
我认为您必须使用associate()方法而不是attach(),因为您正在更新belongsTo关系。
试试这个:
$order = App'Order::findOrFail($order_id);
$user->orders()->associate($order);
$user->save();