Laravel 5.5 Entrust使用中间件授予路由组权限失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel 5.5 Entrust使用中间件授予路由组权限失败相关的知识,希望对你有一定的参考价值。

我正在使用委托我的laravel 5.5项目来提供ACL系统。当我尝试在我的路由中使用中间件来过滤访问时,它属于以下情况

Route::group(['middleware' => ['role:admin', 'role:hr']],
            function () {

//other routes which should be checked by permission
});

如果管理员访问此方法内部的路由,我会得到一个例外

 Symfony  Component  HttpKernel  Exception  HttpException
No message

如果我删除第二个角色访问权限

Route::group(['middleware' => ['role:admin']],
            function () {

//other routes which should be checked by permission
});

比它的工作,但我需要拆分这个路径访问权限,这可以通过这2个角色访问。

我在这种情况下做错了什么?

答案

您不会将角色检查拆分为单独的数组条目。

可以使用管道符号作为OR运算符:

'middleware'=> ['role:admin | root']

要模拟AND功能,只需使用多个中间件实例

'middleware'=> ['角色:所有者','角色:作家']

Docs

以上是关于Laravel 5.5 Entrust使用中间件授予路由组权限失败的主要内容,如果未能解决你的问题,请参考以下文章

在 Vue JS 和 Laravel 5.1 + Entrust 中检查特定角色的权限

Laravel 5.2 Entrust:如果他手动添加受限URL,则重定向用户

Laravel Entrust 权限管理扩展包的踩坑记录

需要关于在单个资源控制器中使用 Entrust 角色的建议 - Laravel5

[ Laravel 5.5 文档 ] 处理用户请求 —— HTTP 请求的过滤器:中间件

Entrust - Laravel 用户权限系统解决方案 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 - Powered by PHPHub