>백엔드 개발 >PHP 튜토리얼 >라라벨 권한 관리

라라벨 권한 관리

不言
不言원래의
2018-04-24 15:59:323058검색

이 글의 내용은 특정 참조 가치가 있는 laravel 권한 관리에 관한 것입니다. 이제 모든 사람과 공유합니다. 필요한 친구들이 참조할 수 있습니다.

이 패키지를 사용하세요:
https://github.com/spatie/laravel - 허가

중국어 번역:
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의 템플릿 사용률

위 내용은 라라벨 권한 관리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.