我试图找到并非属于特定用户的所有群组。我知道如何用流利的方式做到这一点,但我想知道如何使用Eloquent找到这些组。
这是我的用户模型:
public function groups(){
return $this->belongsToMany("Group");
}
这是组模型:
public function users(){
return $this->belongsToMany("User");
}
如果我这样做:User::find(1)->groups
我将获取属于该用户的所有组,但是如何撤消该过程,如何查找 NOT 属于该用户的组。< / p>
答案 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();
希望这是有道理的。