我正在尝试在 Laravel 应用程序中分离many-to-many
关系。但是,我一直收到以下错误:
Call to undefined method Illuminate\Database\Query\Builder::detach()
我有两个模型 - User
和Item
。每个User
可以包含多个Item
,但它必须位于自定义表user_haves
中。
档案:
public function usersHave() {
return $this->hasMany('User', 'id', 'user_haves');
}
用户:
public function haves() {
return $this->hasMany('Item', 'id', 'users_have');
}
现在我试图通过执行以下操作来分离它:
Sentry::getUser()->haves()->detach($item->id);
我该如何做到这一点?
答案 0 :(得分:2)
在这两种情况下,您都需要使用belongsToMany
代替hasMany
,例如:
public function usersHave() {
return $this->belongsToMany('User', 'user_have');
}
public function haves() {
return $this->belongsToMany('Item', 'user_have');
}
还需要创建user_have
数据透视表。 Check the manual