如何修复错误方法 Illuminate\Database\Query\Builder::attach 不存在。附加多个项目
How to fix error Method Illuminate\Database\Query\Builder::attach does not exist. Attaching multiple items
我正在尝试将 "items model" 附加到“事件模型。
物品型号:
public function events()
{
return $this->belongsToMany('App\Event', 'event_item');
}
事件模型
public function items()
{
return $this->belongsToMany('App\Item', 'event_item');
}
用户模型
public function items()
{
return $this->hasMany('App\Item', 'user_id');
}
事件控制器
public function store(Request $request)
{
// Get user
$user = $request->user();
// Create event
$event = Event::create(array_merge($request->all(), ['user_id' => $user->id]));
// Attach items to event
$user->items()->attach($event->id);
}
我的用户有多个项目。所有用户项目都需要附加到商店功能上的事件。
我收到此错误方法 Illuminate\Database\Query\Builder::attach 不存在。
用户模型:
return $this->hasMany('App\Item', 'item_id');
您的 User model
items 函数必须 return BelongsToMany 关系才能使用 attach()。
用户模型:
public function items() {
return $this->belongsToMany('App\Item');
}
我能够弄清楚这一点,实际上很容易出错。我想将项目附加到事件,但在我最初的问题中,我有用户附加到项目。
更改了这个:
// Attach items to event
$user->items()->attach($event->id);
为此:
// Attach items to event
$event->items()->attach($user->items);
现在按预期工作。
我正在尝试将 "items model" 附加到“事件模型。
物品型号:
public function events()
{
return $this->belongsToMany('App\Event', 'event_item');
}
事件模型
public function items()
{
return $this->belongsToMany('App\Item', 'event_item');
}
用户模型
public function items()
{
return $this->hasMany('App\Item', 'user_id');
}
事件控制器
public function store(Request $request)
{
// Get user
$user = $request->user();
// Create event
$event = Event::create(array_merge($request->all(), ['user_id' => $user->id]));
// Attach items to event
$user->items()->attach($event->id);
}
我的用户有多个项目。所有用户项目都需要附加到商店功能上的事件。 我收到此错误方法 Illuminate\Database\Query\Builder::attach 不存在。
用户模型:
return $this->hasMany('App\Item', 'item_id');
您的 User model
items 函数必须 return BelongsToMany 关系才能使用 attach()。
用户模型:
public function items() {
return $this->belongsToMany('App\Item');
}
我能够弄清楚这一点,实际上很容易出错。我想将项目附加到事件,但在我最初的问题中,我有用户附加到项目。
更改了这个:
// Attach items to event
$user->items()->attach($event->id);
为此:
// Attach items to event
$event->items()->attach($user->items);
现在按预期工作。