Laravel中使用artisan创建中间件

1,在项目根目录下使用:php artisan make:middleware AdminMiddleware 中间件名称Middleware命令创建中间件

    创建中间件 php artisan make:middleware AdminMiddleware 中间件名字  AdminMiddleare.

2,在中间件中写下规则,主要就是进行判断是否登录,当然也别忘了引入命名空间,如下例:
    public function handle($request, Closure $next)
    {
    //判断是否登陆,如未登录则重定向到登陆页
    if(empty(\Session::get('admin'))) {
    return redirect('/login');
    }
    //如已登陆则执行下一步
    return $next($request);
    }

 3,在 Kemel.php 文件中中间件添加到局部中间件中,如下例:

     protected $routeMiddleware = [
         'auth' => \App\Http\Middleware\Authenticate::class,
         'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
         'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
         //添加的中间件 Admin
         'Admin' => \App\Http\Middleware\AdminMiddleware::class,
     ];

 4, 在路由里加入中间件,除了登录、注册和执行登录方法写到中间件外面,其余的方法都应该写入到中间件里面,如下例:

     Route::group(['domain' => 'www.wang.com'], function () {
         //登陆 写在中间件外面
         Route::resource('index','User\UserController');
         //注册 写在中间件外面
         Route::resource('create','User\UserController@create');
         //执行登陆 写在中间件外面
         Route::resource('login','User\UserController@login');
         //验证是否登陆中间件
         Route::group(['middleware' => 'Admin'],function(){
             //列表
             Route::resource('show','User\UserController@show');
             //修改
             Route::resource('edit','User\UserController@edit');
             //执行修改
             Route::resource('update','User\UserController');
             //删除
             Route::resource('destroy','User\UserController@destroy');
         });        
     });

猜你喜欢

转载自blog.csdn.net/zhangchb/article/details/80801890