Laravel中間件實現的目的是過濾http請求,如果通過了過濾就會往下執(zhí)行。
1、先生成一個數據庫遷移
php artisan make:migration user_table_is_admin;
2、編輯數據庫遷移文件
class userTableIsAdmin extend Migration{
public function up(){
Schema::create("users",function(Blueprient $table)){
$table->boolean('isAdmin')->default(0);
}
}
public function down(){
Schema::drop("users");
}
}
3、生成中間件
php artisan make:middleware isAdminMiddleWare
4、編輯中間件內容
class isAdminMiddleWare{
public function handle($request,Closure $next){
if(Auth::guest()||!Auth::user()->isAdmin()){
return redirect('/',301)->with('message','login')
}
return $next($request);
}
}
5、把中間件添加到app/http/Kernel.php中
protect $routeMiddleWares=[
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'admin' => \App\Http\Middleware\AdminMiddleware::class,
]