首页
学
【学】PHP
【学】前端
【学】Linux
【学】杂学
【学】支付
【学】Docker
享
【享】文件
【享】工具
日记
Me
【Me】我
【Me】留言
老郭博客-程序员客栈
文章模型
下载模型
首页
学
【学】PHP
【学】前端
【学】Linux
【学】杂学
【学】支付
【学】Docker
享
【享】文件
【享】工具
日记
Me
【Me】我
【Me】留言
首页
学
【学】PHP
Laravel - Entrust 使用方法
Laravel - Entrust 使用方法
发布时间:
2年前
作者:
老郭
热度:
926 ℃
评论数:
# Entrust使用方法-start * 在控制器中的用法 ``` // 判断用户角色 dd(auth()->user()->hasRole('admin')); dd(auth()->user()->hasRole('user')); // 多个角色判断(满足其中一个即可,第二个可选参数,true时需要同时满足) dd(auth()->user()->hasRole(['admin','user'])); //或者 dd(auth()->user()->hasRole(['admin','user'],true)); //并且 // 判断用户是否有相应权限 dd(auth()->user()->can('create users')); // 匹配模式 dd(auth()->user()->can('*users')); // 多个权限判断(满足其中一个即可,第二个可选参数,true时需要同时满足) dd(auth()->user()->can(['create users','aaa'])); //或者 dd(auth()->user()->can(['create users','aaa'],true)); //并且 // 判断角色和权限其他用法 Entrust::hasRole('role-name'); Entrust::can('permission-name'); // is identical to Auth::user()->hasRole('role-name'); Auth::user()->can('permission-name'); // 匹配判断 // match any admin permission $user->can("admin.*"); // true // match any permission about users $user->can("*_users"); // true // 判断用户是否有第一个数组中得角色和第二个数组中得权限,第三个数组中得validate_all 如果为 true 则为或者操作,如果为 false 则为并且操作, return_type 为整个判断返回的类型,可以为bool类型,可以为数组,也可以为 both ,both则是把每个判断的结果以数组的形式展现。 dd(auth()->user()->ability( array('admin','user'), array('create users','edit users'), ['validate_all' => true,'return_type' => 'both'] )); //下面的方法和上面的一致 dd(auth()->user()->ability( array('admin', 'user'), array('create users', 'edit users'), array('validate_all' => true,'return_type' => 'both') )); $user->ability('admin,owner', 'create-post,edit-user'); // 第三个可选参数为数组 $options = array( 'validate_all' => true | false (Default: false), 'return_type' => boolean | array | both (Default: boolean) ); $options = array( 'validate_all' => true, 'return_type' => 'both' ); //下面的方法和上面的判断 结果是一致的,只不过写法不同而已。 list($validate, $allValidations) = $user->ability( array('admin', 'owner'), array('create-post', 'edit-user'), $options ); var_dump($validate); // bool(false) var_dump($allValidations); // array(4) { // ['role'] => bool(true) // ['role_2'] => bool(false) // ['create-post'] => bool(true) // ['edit-user'] => bool(false) // } // 等价写法 Entrust::ability('admin,owner', 'create-post,edit-user'); // is identical to Auth::user()->ability('admin,owner', 'create-post,edit-user'); ``` * 模版标签 ``` @role('admin') <div class="panel-body"> <p>admin</p> </div> @endrole @permission('create users') <div class="panel-body"> <p>create users</p> </div> @endpermission @ability('admin,owner', 'create-post,edit-user') <div class="panel-body"> <p>'admin,owner', 'create-post,edit-user'</p> </div> @endability ``` * 中间件 ``` Route::group(['prefix' => 'admin', 'middleware' => ['role:admin']], function() { Route::get('/', 'AdminController@welcome'); Route::get('/manage', ['middleware' => ['permission:manage-admins'], 'uses' => 'AdminController@manageAdmins']); }); ``` * 传递多个参数(分隔中间件名和参数名来指定,多个中间件参数可以通过逗号分隔): ``` 'middleware' => ['role:admin|root'] 'middleware' => ['permission:owner', 'permission:writer'] 'middleware' => ['ability:admin|owner,create-post|edit-user,true'] ``` # Entrust使用方法-end
Laravel,Entrust,RBAC,权限管理,使用方法
上一篇:
Laravel - Entrust 实例安装与数据填充
下一篇:
Laravel - 服务设计模式
栏目导航
【学】PHP
【学】前端
【学】Linux
【学】杂学
【学】支付
【学】Docker
相关文章
Laravel中的Controller(控制器)
1198 ℃
Laravel中的Model(模型)
1341 ℃
Laravel中的Route(路由)
1620 ℃
Laravel中的Middleware(中间件)
1160 ℃
Laravel的任务调度(定时任务)
2232 ℃
Laravel中带有条件搜索加分页
941 ℃
Composer - 快速入门(如有遗漏,敬请谅解)
1141 ℃
Laravel - 数据迁移
930 ℃
Laravel - 数据填充
970 ℃
Laravel - 论配置文件的重要性
962 ℃
Laravel - CSRF 攻击与防御
850 ℃
Laravel - 验证码(captcha)
1178 ℃
Laravel - Entrust 权限管理包安装与配置
1120 ℃
Laravel - Entrust 实例安装与数据填充
968 ℃
Laravel - Entrust 使用方法
926 ℃
Laravel - 服务设计模式
1174 ℃
Laravel - 后台模版、菜单表与路由定义
1493 ℃
Laravel - 菜单视图
1330 ℃
Laravel - 添加菜单
915 ℃
Laravel - 菜单递归及排序
1349 ℃
Laravel - 菜单列表视图
1048 ℃
Laravel - Redis 缓存菜单数据
2411 ℃
微信小程序
手机扫码访问