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

Laravel 5.5 Entrust using middleware to grant permissions on route groups fails

我正在为我的 laravel 5.5 项目使用 entrust 来提供 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 个角色访问。

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

您没有将角色检查分成单独的数组条目。

It is possible to use pipe symbol as OR operator:

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

To emulate AND functionality just use multiple instances of middleware

'middleware' => ['role:owner', 'role:writer']

Docs