laravel自定义实现middleware中间件

Laravel中间件实现的目的是过滤http请求,如果通过了过滤就会往下执行。
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,
]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容