Laravel 7 Spatie返回相同角色

时间:2020-09-08 18:00:36

标签: laravel spatie

我有一个名为“角色”的表:

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一样,当我在模型上运行时,它只会返回第一个权限。

1 个答案:

答案 0 :(得分:0)

尝试这样:

$user = Auth::user();   
$role_user = $user->roles->pluck('name');
return $role_user;