Laravel - 查找不属于用户的组

时间:2014-10-22 14:16:03

标签: laravel-4 eloquent

我试图找到并非属于特定用户的所有群组。我知道如何用流利的方式做到这一点,但我想知道如何使用Eloquent找到这些组。

这是我的用户模型:

public function groups(){

return $this->belongsToMany("Group");

}

这是组模型:

public function users(){

return $this->belongsToMany("User");

}

如果我这样做:User::find(1)->groups我将获取属于该用户的所有组,但是如何撤消该过程,如何查找 NOT 属于该用户的组。< / p>

1 个答案:

答案 0 :(得分:3)

我相信可以使用以下方法完成:

$user = User::find(1);
$groups = Group::whereNotIn('id', $user->groups->modelKeys())->get();

因此,您可以在User模型中创建一个方法,如下所示:

public function undefinedGroups()
{
    return Group::whereNotIn('id', $this->groups->modelKeys())->get();
}

然后只需:

User::find(1)->undefinedGroups();

希望这是有道理的。