2016-06-17 5 views
0

特定のユーザーの1つ以上のグループを共有するすべてのユーザーを取得するにはどうすればよいですか?Eloquent:1人または複数のユーザーグループを共有するすべてのユーザーを取得

私はすでに中間テーブルのgroup_userを持つユーザーとグループ間の多対多の関係を持っている...

私はこの擬似コードのようなもの使って考えた:

$users = User::with('groups')->whereIn('groups', $current_user->groups->all())->all(); 

を私が使用する必要がありますかどういうわけかhasManyThrough

答えて

2

group_userテーブルにプライマリキーidがあると仮定すると、おそらく以下のようなものが動作します。

$users = User::whereHas('groups', function ($q) use ($current_user) { 
    $q->whereIn('id', $current_user->groups->pluck('id')->all()); 
})->get(); 
+0

完璧!私はそのようなものを見つける経験があまりありません。ありがとう – intrixius

関連する問題