用这个包:
https://github.com/spatie/laravel-permission
中文翻译:
https://laravel-china.org/topics/8018/extension-recommendation-role-and-authority-control-in-spatielaravel-permission-laravel-applications
补充的方法:
#获取所有拥有这个权限的用户: $users = user::role($role_name)->get();
$role=role::find($role_id); #获取这个角色已经有的权限 $permissions = $role->permissions; #获取这个角色没有的权限 $diffpermissions = permission::wherenotin('id', $permissions->pluck('id'))->get();
#清除现有权限及缓存,并重新分配权限,权限可以是数组$role->syncpermissions($permissions);
#获取一个用户的所有权限,$user是user的一个实例$permissions = $user->getallpermissions();
#给用户分配角色,使其继承这个角色的的权限。 $user->assignrole('writer'); #给角色分配权限 $res = $role->givepermissionto($permissions); #给用户分配权限,三种方式都可以 $user->givepermissionto('edit articles'); // you can also give multiple permission at once$user->givepermissionto('edit articles', 'delete articles'); // you may also pass an array$user->givepermissionto(['edit articles', 'delete articles']); // 获取所有已定义的角色的集合 $roles = $user->getrolenames(); // 返回一个集合
#可以使用下面其中一种方法将多个权限同步赋予到一个角色: $role->syncpermissions($permissions); $permission->syncroles($roles); #可以使用以下其中一种方法通过角色去删除权限: $role->revokepermissionto($permission);$permission->removerole($role);
相关推荐:
laravel的模板yeild使用
以上就是laravel权限管理的详细内容。
