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);
        }
  • 相关阅读:
    大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 时序算法)
    大数据时代:基于微软案例数据库数据挖掘知识点总结(结果预测篇)
    svg图片的缩放拖拽
    计算机网络之以太网,通俗点的说法
    yield 与生成器
    安卓开发第一记 android stdio 安装后 新建测试项目报错
    Javascript的异常捕获机制
    小而实用的工具插件集锦(JQGrid,zTree)
    proxifier 注册码 +电脑全局代理设置
    雷林鹏分享:jsp 发送邮件
  • 原文地址:https://www.cnblogs.com/somethingWithiOS/p/11968549.html
Copyright © 2011-2022 走看看