好的,所以您需要创建AdminMiddleware
并将其添加到路由中。
首先,打开您的User
模型并在其中添加额外的方法:
public function isAdmin()
{
return $this->RoleID == 1;
}
现在在控制台中运行:
php artisan make:middleware AdminMiddleware
打开您的AdminMiddleware.php
并更改handle
方法,使其看起来像这样:
if (!\Auth::user()->isAdmin()) {
if ($request->ajax()) {
return response('Admin account required.', 401);
} else {
return redirect('/'); // set here any url you need
}
}
return $next($request);
现在打开app/Http/Kernel.php
并添加到$routeMiddleware
属性新条目:
'isAdmin' => \App\Http\Middleware\AdminMiddleware::class,
最后修改成你的路线
'middleware' => 'auth',
进入
'middleware' => ['auth', 'isAdmin'],
这里的顺序很重要,如果你在这里改变顺序,如果用户没有登录,你会得到意想不到的异常。
根据您的需要,您可能还想在isAdmin
此处仅使用中间件,以防您希望在此路由上进行其他重定向,而不是在auth
用户未登录时。在这种情况下,您需要合并来自auth
and的方法isAdmin
并使其适合您的需求。