• php手记之08-tp5中间件


    01-创建中间件

    php think make:middleware 中间件的名称
    
    这个指令会 application/http/middleware目录下面生成一个中间件文件。

     02-注册中间件三种方式

    方式1-控制器注册  pathinfo,自定义路由不适用

    <?php
    
    namespace appindexcontroller;
    
    use thinkController;
    
    class Middleware extends Controller
    {
        // 控制器的方法,要在pathinfo的情況下才可以,在自定義路由裡不適用
        protected $middleware = ['CkeckLogin'];
        
        public function middle()
        {
            dump('----');
            
            # code...
        }
    }

    方式2--自定义路由 middleware

    //单路由
    Route::get('middle','@index/middleware/middle')->middleware('CkeckLogin');
    
    // 路由组注册中间件
    Route::group(['middleware'=>['CkeckLogin']],function(){
        Route::get('middle','@index/middleware/middle');
    });

    方式3-配置文件注册,配置文件的所在模块的位置内的所有控制器都会调用,每个模块都可以有自己的middleware.php文件

    01-配置文件middleware.php里注册多个中间件的模板引入(传参也可以在这里)

    <?php
    
    return [
        // [apphttpmiddlewareCheckUser::class],
        
        //传单个值
        // [apphttpmiddlewareCheckUser::class,'lili'],
    
        // 传多个值
        [apphttpmiddlewareCheckUser::class,['name'=>'lili','age'=>234]],
        [apphttpmiddlewareCkeckLogin::class,'lili'],
      
    ];

    路由也可以传参

    02-路由里也可以传参
    Route::get('middle','@index/middleware/middle')->middleware('CkeckLogin','lili');
    
    // 路由组注册中间件
    Route::group(['middleware'=>['CkeckLogin']],function(){
        Route::get('middle','@index/middleware/middle');
    });
    
    // 路由组注册中间件并传值1
    Route::group(['prefix'=>'@index/middleware'],function(){
        Route::get('middle','/middle');
    })->middleware('CkeckLogin','libai');
    
    // 路由组注册中间件并传值2
    Route::group(['middleware'=>['CkeckLogin:ksksks']],function(){
        Route::get('middle','@index/middleware/middle');
    });

    控制器里使用(取参使用)

     // $name传值
        public function handle($request, Closure $next,$data)
        {
            echo 'checkuser----'.$data['name'].'---'.'age='.$data['age'];
            return $next($request);
        }
  • 相关阅读:
    OC闪屏页尺寸
    OC 应用跳转QQ私聊界面或者申请加群
    一款好用的相册浏览器
    获取UILabel的numberOfLine
    一、spring入门案例
    三、为什么要配置环境变量?怎么用cmd编译运行java代码?
    十三、Swing绘图技术
    十二、泛型、反射和异常
    十一、集合框架
    十、二进制、位运算、位移运算符
  • 原文地址:https://www.cnblogs.com/somethingWithiOS/p/11968549.html
Copyright © 2020-2023  润新知