2017-12-01 18 views
2
users 
id 

roles 
id 
name 

user_roles 
user_id 
role_id 

特定の役割を持つすべてのユーザーにクエリを実行したいと思います。例: だから、ロール「管理者」を持つすべてのユーザーeloquent id in in many to many

答えて

2

を取得し、あなたは

$users = User::whereHas('roles', function($query) { 
    $query->where('name', 'admin'); 
})->get(); 
雄弁

から whereHasを使用することができますが、役割のIDを知っている場合は、参照のためにここに https://laravel.com/docs/5.5/eloquent-relationships

1

を参照してください、次の操作を行います。あなたが唯一の名前や役割のタイトルを知っている場合

User::whereHas('roles', function ($q) use($roleId) { 
    $q->where('id', $roleId); 
}) 
->get(); 

、次の操作を行います。

User::whereHas('roles', function ($q) use($roleTitle) { 
    $q->where('title', $roleTitle); 
}) 
->get(); 
2

他の方向からの関係で行くためのオプションもあります。

Role::where('name', 'admin')->firstOrFail()->users; 
+0

は、別のクエリの一部としてこれを行う方法があります: 例えばComment :: where( 'user' ...ロール管理者のユーザーですか? – Chris

+0

私はあなたの質問をよく理解していません。 – lagbox

関連する問題