分离未定义

时间:2014-07-22 09:49:19

标签: php laravel laravel-4

我正在尝试在 Laravel 应用程序中分离many-to-many关系。但是,我一直收到以下错误:

Call to undefined method Illuminate\Database\Query\Builder::detach()

我有两个模型 - UserItem。每个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);

我该如何做到这一点?

1 个答案:

答案 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