如果我没有忘记任何东西,这应该就够了。
Kernel.php:
protected $routeMiddleware = [
//...
'isAdmin' => \App\Http\Middleware\IsAdminMiddleware::class,
];
IsAdminMiddleware:
public function handle($request, Closure $next)
{
if(!\Auth::user()->isAdmin){
return Redirect::route('index');
}
return $next($request);
}
routes.php文件:
Route::group(['middleware' => ['auth', 'isAdmin']], function() {
Route::get('/', '[email protected]')->name('admin.index');
Route::get('/add-user', '[email protected]')->name('admin.addUser');
});
懒惰溶液,不推荐使用:
在你AdminController
,添加以下内容:
public function __construct(){
if(!\Auth::user()->isAdmin){
dd('Redirect user or whatever, this is where all but admin gets stucked');
}
}
这就是我得到: FatalThrowableError在IsAdmin.php线17: 级 '应用程序\ HTTP \中间件\验证' 未找到 – Jubiki
使用反斜杠验证之前: :用户() - > isAdmin。我已经更新了这个例子。 – SebHallin
它运行良好,但现在我无法访问我为管理员创建的页面。我不确定它是否认识到我是管理员?我的数据库表格作为isAdmin的布尔列。 1为真,0为假,对吗?为什么它不认可我是管理员? – Jubiki