Laravel 4 Laravel-查找没有';不属于用户
我正在尝试查找不属于特定用户的所有组。我知道如何用fluent来做这件事,但我想知道如何用elount找到这些小组 这是我的用户模型: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我将获取属
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)…这应该是公认的答案。