Laravel 4 Laravel-查找没有';不属于用户

Laravel 4 Laravel-查找没有';不属于用户,laravel-4,eloquent,Laravel 4,Eloquent,我正在尝试查找不属于特定用户的所有组。我知道如何用fluent来做这件事,但我想知道如何用elount找到这些小组 这是我的用户模型: public function groups(){ return $this->belongsToMany("Group"); } 这是组模型: public function users(){ return $this->belongsToMany("User"); } 如果我这样做:User::find(1)->groups我将获取属

我正在尝试查找不属于特定用户的所有组。我知道如何用fluent来做这件事,但我想知道如何用elount找到这些小组

这是我的用户模型:

public function groups(){

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

}
这是组模型:

public function users(){

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

}

如果我这样做:
User::find(1)->groups
我将获取属于此用户的所有组,但如何反向过程,如何查找不属于此用户的组。

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

$user = User::find(1);
$groups = Group::whereNotIn('id', $user->groups->modelKeys())->get();
因此,您可以在用户模型中创建如下方法:

public function undefinedGroups()
{
    return Group::whereNotIn('id', $this->groups->modelKeys())->get();
}
然后简单地做:

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

希望这是有意义的。

这里已经问过这个问题,它非常有效-请确保调用undefinedGroups(),而不是undefinedGroups(不带括号)-您的语法将略有不同,例如foreach($user->groups as$group)和foreach($user->undefinedGroups()as$group)…这应该是公认的答案。