所以我有两个模型,一个是用户和一个订单(一个用户有很多订单)
我的模型中的关系设置如下:
用户模型
public function orders()
{
return $this->hasMany('App\Order');
}
订单型号
public function user()
{
return $this->belongsTo('App\User');
}
我使用以下代码将当前登录的用户附加到订单。
Auth::user()->orders()->attach($order_id);
我认为这是正确的但我在执行代码时遇到此错误:
调用未定义的方法Illuminate \ Database \ Query \ Builder :: attach()
有人可以解释我做错了吗?
答案 0 :(得分:0)
我认为你必须使用associate()方法而不是attach(),因为你正在更新belongsTo关系。
试试这个:
$order = App\Order::findOrFail($order_id);
$user->orders()->associate($order);
$user->save();
答案 1 :(得分:0)
attach
方法适用于many-to-many relationships。要将订单与业务情景中的用户相关联,您应该能够以这种方式保存订单模型:
$order = App\Order::findOrFail($order_id);
Auth::user()->orders()->save($order);