zoukankan      html  css  js  c++  java
  • Laravel 中间件的使用(前置与后置)

    中间件的作用:

    过滤进入应用程序的http请求。

    比如,有一个活动,在活动开始前进入活动页则跳转到宣传页

    使用步骤:

    1 创建中间件 appHttpMiddlewareActivity.php

    php artisan make:middleware Activity
    <?php
    
    namespace AppHttpMiddleware;
    
    use Closure;
    
    class Activity
    {
        /**
         * Handle an incoming request.
         * @param  IlluminateHttpRequest  $request
         * @param  Closure  $next
         * @return mixed
         */
    
        public function handle($request,Closure $next){
    
            if(time() < strtotime('2020-08-06')){
                return redirect('activity0');
            }
            return $next($request);
        }
    }

    2 控制器方法 appHttpControllersStudentController.php

        public function activity0()
        {
            return '活动快要开始了';
        }
    
        public function activity1()
        {
            return '活动进行中,感谢你的参与1';
        }
        public function activity2()
        {
            return '活动进行中,感谢你的参与2';
        }

    3 设置路由 outesweb.php

    //宣传页面
    Route::any('activity0',['uses'=>'StudentController@activity0']);
    
    //活动页面:
    Route::group(['middleware'=>['activity']],function (){
        Route::any('activity1',['uses'=>'StudentController@activity1']);
        Route::any('activity2',['uses'=>'StudentController@activity2']);
    });

    4 注册路由 appHttpKernel.php

        protected $routeMiddleware = [
           。。。。。
            'activity' => AppHttpMiddlewareActivity::class,
        ];

     前置操作与后置操作

        public function handle($request,Closure $next)
        {
            echo '【我是前置操作】';
            $response = $next($request);//$next($request)本质上就是response
            echo($response);
            echo '【我是后置操作】';
        }

    $next($request)就是response  在此之间的就是前置操作,后面的就是后置操作。。。。。

  • 相关阅读:
    开天辟地第一人---盘古
    质量管理三个概念:QC、QA和QM,你能分得清吗?
    项目管理PV、EV、AC、BAC、EAC、ETC等计算
    信息系统项目管理师考试是高级职称资格考试,可以用来评高级职称
    项目章程
    信息系统项目管理师---项目管理5大过程组十大知识域47个过程
    一句话信息系统项目管理
    信息系统项目管理师论文写作经验
    Linux系统
    什么是Redis?
  • 原文地址:https://www.cnblogs.com/polax/p/13323707.html
Copyright © 2011-2022 走看看