Php 使用Elounting将订单附加到用户模型

Php 使用Elounting将订单附加到用户模型,php,laravel,eloquent,Php,Laravel,Eloquent,所以我有两个模型,一个用户和一个订单(一个用户有很多订单) 在我的模型中,关系设置如下: 用户模型 public function orders() { return $this->hasMany('App\Order'); } public function user() { return $this->belongsTo('App\User'); } 订单模式 public function orders() { return $this->ha

所以我有两个模型,一个用户和一个订单(一个用户有很多订单)

在我的模型中,关系设置如下:

用户模型

public function orders()
{
    return $this->hasMany('App\Order');
}
public function user()
{
    return $this->belongsTo('App\User');
}
订单模式

public function orders()
{
    return $this->hasMany('App\Order');
}
public function user()
{
    return $this->belongsTo('App\User');
}
我正在使用以下代码将当前登录的用户附加到订单

Auth::user()->orders()->attach($order_id);
我相信这是正确的,但我在执行代码时遇到了以下错误:

调用未定义的方法Illumb\Database\Query\Builder::attach()


有人能解释一下我做错了什么吗?

我认为您必须使用associate()方法,而不是attach(),因为您正在更新belongsTo关系

试试这个:

$order = App\Order::findOrFail($order_id);

$user->orders()->associate($order);

$user->save();

我认为您必须使用associate()方法,而不是attach(),因为您正在更新belongsTo关系

试试这个:

$order = App\Order::findOrFail($order_id);

$user->orders()->associate($order);

$user->save();

attach
方法用于。要将订单与场景中的用户关联,您应该能够通过以下方式保存订单模型:

$order = App\Order::findOrFail($order_id);
Auth::user()->orders()->save($order);

attach
方法用于。要将订单与场景中的用户关联,您应该能够通过以下方式保存订单模型:

$order = App\Order::findOrFail($order_id);
Auth::user()->orders()->save($order);

您使用的是哪一版本的Laravel?我使用的是Laravel v5.1 LTS您使用的是哪一版本的Laravel?我使用的是Laravel v5.1 LTS这只返回未定义的方法associate(),而不是它只返回未定义的方法associate(),而不是它。您需要首先使用
$order=App\order::findOrFail($order\u id)获取$order正确<代码>$order
需要是订单模型的实例。我不确定你是否已经有了它-感谢你指出这一点(我将把它添加到我的答案中以供参考)。你需要首先使用
$order=App\order::findOrFail($order\u id)获取$order正确<代码>$order
需要是订单模型的实例。我不确定你是否已经知道了——谢谢你指出这一点(我将把它添加到我的答案中以供参考)。