users
id
roles
id
name
user_roles
user_id
role_id
我想查询具有特定角色的所有用户。 例如获得具有该角色' admin'
的所有用户答案 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();