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

02-注册中间件三种方式
方式1-控制器注册 pathinfo,自定义路由不适用
<?php
namespace app\index\controller;
use think\Controller;
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 [
// [app\http\middleware\CheckUser::class],
//传单个值
// [app\http\middleware\CheckUser::class,'lili'],
// 传多个值
[app\http\middleware\CheckUser::class,['name'=>'lili','age'=>234]],
[app\http\middleware\CkeckLogin::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);
}