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);
        }
  • 相关阅读:
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    210 Course ScheduleII
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    sql 开发经验
  • 原文地址:https://www.cnblogs.com/somethingWithiOS/p/11968549.html
Copyright © 2011-2022 走看看