在我的laravel项目中,我创建了自己的角色并将它们添加到中间件中,以便我可以使用auth.admin或auth.superadmin来保护特定的路由。
我的超级用户角色有一个路由::组,我的管理员角色有一个路由::组,标准身份验证检查有一个路由:组。
现在我有一个特定的路由,必须由超级管理员和管理员访问。 当我将路由放在管理员组或超级管理员组中时,它可以工作。但是当我尝试将其放置在两者中或创建一个路由组以检查两个角色时,它不会。 然后我尝试像这样制作一个路由::组:
Route::group(['middleware' => ['auth','auth.admin', 'auth.superadmin']], function() {
Route::resource('user', 'UserController', ['except' => ['show']]);
});
我以为这会解决我的问题,但事实并非如此。
如何创建一个只有管理员和超级管理员可以访问路由的路由组。
重写中间件以使用如下设置:
Route::get('/home', ['middleware' => 'roles:admin,superadmin', function () {
echo '/home';
}]);
然后使用...
运算符,您可以轻松地将参数$roles
作为数组检查:
// YourMiddleware.php
public function handle($request, Closure $next, ...$roles)