laravel - 如何从 Laravel 中具有多个角色的用户那里获取权限?
问题描述
我正在构建一个新的 laravel 应用程序,其中一个用户可以有多个角色,这些角色有多个权限(权限)。现在我想从某个用户那里获得所有权限。
我正在使用 Laravel 5.8 和 Eloquent。我可以从用户那里获得角色,从角色那里获得权限,但不能从用户那里获得权限。
dd(Auth::user()->roles->rights);
模型用户:
public function roles()
{
return $this->belongsToMany(Role::class);
}
模特角色:
public function users()
{
return $this->belongsToMany(User::class);
}
public function rights()
{
return $this->belongsToMany(Right::class);
}
模特权利
public function roles()
{
return $this->belongsToMany(Role::class);
}
我希望通过他拥有的角色获得一位用户过去的所有权限。
解决方案
由于一个用户可以拥有多个角色,一个角色可以拥有多个权限,因此您需要遍历每个角色
//Retrieving rights associated with the user
public function retrieveRightsAssociatedWithUser($user){
$rightsAssociatedWithUser = [];
foreach($user->roles as $role){
$rightsAssociatedWithUser[] = $role->rights;
}
return $rightsAssociatedWithUser;
}
推荐阅读
- r - 在单元格中保存一列
- google-apps-script - Apps 脚本 - 如何用普通字符替换 Google Docs 中的智能引号字符?
- javascript - 从同一数组中的其他索引值插入索引值
- jquery - 如何编写 Angular 8 的 jQuery ajax 等价物?
- flutter - 如何在执行长操作时只允许使用流或缓冲流事件的单个执行任务
- linux - Shell 将管道值作为文件输入发送
- c# - 浮点数如何保持这个值?1571563892。在范围内,但改为1571564000,多出12个
- java - Maven 构建无法在 jenkins websphere 部署插件中部署
- powershell - 如何使用 PowerShell 获取恶意 DHCP 客户端?
- javascript - 如何同时处理:一个 dom 元素的 onClick 和 onMouseMove?