雄辩,从很多到很多的身份

时间:2017-12-01 16:46:07

标签: laravel eloquent

users
id

roles
id
name

user_roles
user_id
role_id

我想查询具有特定角色的所有用户。 例如获得具有该角色' admin'

的所有用户

3 个答案:

答案 0 :(得分:2)

因此,您可以使用Eloquent

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

请参阅此处以获取参考https://laravel.com/docs/5.5/eloquent-relationships

答案 1 :(得分:2)

还可以选择从另一个方向进行关系:

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

答案 2 :(得分:1)

如果您知道角色ID,请执行以下操作:

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

如果只知道角色的名称或头衔,请执行以下操作:

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