我有用户角色列角色的用户表,用户角色具有Enum
值:
移民
$table->enum('role', ['Admin','author','editor']);
我想要的是,只有管理员和作者用户可以访问site.com/view/problems
此页面。
我\app\http\Middleware
用这个内容创建了 3 个中间件。
public function handle($request, Closure $next)
{
if ($request->user() && $request->user()->role != 'Admin') {
return new Response(view('unauthorized')->with('role', 'Admin'));
}
return $next($request);
}
并将它们放入Kernal.php
protected $routeMiddleware = [
'Admin' =>\App\Http\Middleware\AdminMiddleware::class,
'author' =>\App\Http\Middleware\authorAdminMiddleware::class,
'editor' =>\App\Http\Middleware\editorAdminMiddleware::class,
];
然后像这样在web.php中使用它们
Route::get('/view/problems', function () {
//
})->middleware('Admin', 'editor');
但是当我用管理员用户登录时,它说你可以用作者用户访问这个页面。
当我使用作者用户登录时,它说您可以使用管理员用户访问此页面。
我希望当我以管理员或作者用户角色登录时,可以访问此页面。当我使用编辑器登录时无法访问此页面。
我也使用过中间件组。它看起来像以前一样。
我怎样才能做到这一点 ?