如果我沒有忘記任何東西,這應該就夠了。
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