0

在我的 laravel 项目中,我创建了自己的角色并将它们添加到中间件中,这样我就可以使用auth.adminauth.superadmin来保护特定的路由。

我有一个 Route::Group 用于我的超级管理员角色,一个 Route::Group 用于我的管理员角色和一个 Route:Group 用于标准身份验证检查。

现在我有一个必须由超级管理员和管理员访问的特定路由。当我将路由放在管理员组或超级管理员组中时,它可以工作。但是,当我尝试将它放在两者中或创建一个路由组时,我检查这两个角色时它不会。然后我尝试像这样制作一个 Route::Group :

Route::group(['middleware' => ['auth','auth.admin', 'auth.superadmin']], function() {
        Route::resource('user', 'UserController', ['except' => ['show']]);
});

我被认为这会解决我的问题,但它没有。

我如何创建一个只有管理员和超级管理员才能访问该路由的路由组。

4

1 回答 1

1

重写中间件以使用如下设置:

Route::get('/home', ['middleware' => 'roles:admin,superadmin', function () {
   echo '/home';
}]);

然后使用...运算符,您可以轻松地将参数检查$roles为数组:

// YourMiddleware.php
public function handle($request, Closure $next, ...$roles)
于 2019-08-08T13:41:12.423 回答