我有很多很多Laravel关系很多用户都有很多角色
我知道我可以执行User :: find(1) - > roles() - > get()来获取用户ID为1的所有角色,但这需要我知道ID的ID角色反对其名称
我可以在我的用户存储库中添加什么样的雄辩查询来执行类似
的操作public function getAllUsersWithRole($roleType){
//Query goes here
}
其中$ roleType是角色的名称。所以我需要根据hte名称查找角色的ID,然后返回在数据透视表中具有该角色ID的用户
答案 0 :(得分:3)
这看起来像您想要的吗?
public function getAllUsersWithRole($roleType){
$role= Role::where('name', $roleType)->first();
$users= $role->users;
return $users;
}
答案 1 :(得分:0)
如果您的Eloquent模型中有正确的关系定义,您应该能够通过角色名称获取用户:
$roleType = 'YourRoleName';
$users = Role::whereType($roleType)->first()->users;
答案 2 :(得分:-1)
抓住用户,然后获取所有用户的角色。
public function getAllUsersWithRole($roleType){
$users = User::where('role_type', '=', $roleType)->get();
$roles = $users->roles()->get();
return $roles;
}