如何获得Spatie / permission(Laravel)中具有一定权限的角色列表

时间:2018-12-25 12:36:30

标签: laravel permissions acl spatie

我正在尝试以相同的方式获取具有一定权限的用户列表,但由于角色原因,它无法正常工作

  

调用未定义的方法Spatie \ Permission \ Models \ Role :: roles()

我获得具有特定角色的用户列表的方式:

$permission = $request->permission;
$usersWithPerms = User::permission($permission)->get(); 
return array("usersWithPerms"=>$usersWithPerms);

试图获得具有特定权限的角色的方式:

  $groupsWithPerms = Role::permission('perms_givePermToRole')->get(); 
  return array("groupsWithPerms"=>$groupsWithPerms);
  

BadMethodCallException       调用未定义的方法Spatie \ Permission \ Models \ Role :: roles()

2 个答案:

答案 0 :(得分:1)

我唯一得到的是它的名称,但没有获得一定权限的角色ID:

$permission = Permission::findOrFail($request->idPermission);
$groupsWithPerms = $permission->getRoleNames();

其中:getRoleNames()是spatie包中的方法。 这样就可以正常工作,但您只会获得角色的名称,而不是ID。

答案 1 :(得分:0)

获取角色的权限获取权限的角色

$permission = Permission::findOrFail(1);
$groupsWithPerms = $permission->getRoleNames();
//dd($groupsWithPerms);

$role = Role::findOrFail(1);
$groupsWithRoles = $role->getPermissionNames();
//dd($groupsWithRoles);