我有一个名为“角色”的表:
id | name | guard_name | created_at | updated_at
-------------------------------------------------------------------
1 | userx | web | 2020-09-02 22:00:34 | 2020-09-02 22:00:34
2 | admin | web | 2020-09-03 23:28:53 | 2020-09-03 23:28:53
还有另一个名为role_has_permissions
的表:
permission_id | role_id
-----------------------
145 | 2
146 | 2
147 | 2
151 | 3
另一个名为model_has_roles
的表:
role_id | model_type | model_id
-------------------------------------
1 | App\Models\User | 120
3 | App\Models\User | 3
当我在“ MenuController.php”上运行命令时
$user = Auth::user();
$role_user = $user->getRoleNames();
return $role_user;
我收到了正确的退货["admin"]
,因为我以admin身份登录,即型号ID "3"
。
但是当我在Menu.php
(模型)上运行相同的命令时,会收到跟随返回["userx"]
。
就像getrolenames
一样,当我在模型上运行时,它只会返回第一个权限。
答案 0 :(得分:0)
尝试这样:
$user = Auth::user();
$role_user = $user->roles->pluck('name');
return $role_user;