zoukankan      html  css  js  c++  java
  • 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);
        }
  • 相关阅读:
    Windows“神器”收集贴
    《SICP》读后感:关于软件本质的一点思考
    R语言apply函数族笔记
    论触摸板是比鼠标更先进的输入方式
    macbook上实现MacOS+Windows8+Ubuntu三系统
    使用Markdown+Pandoc+LaTex+Beamer制作幻灯片
    Python基本时间转换
    MySQL存储过程、触发器、自定义函数、事务
    Scrapy抓取jobbole数据
    win7安装scrapy
  • 原文地址:https://www.cnblogs.com/somethingWithiOS/p/11968549.html
Copyright © 2011-2022 走看看