一.命令行创建中间件
命令:php think make:middleware Check
二.查看中间件的代码
三.代码解析
declare (strict_types = 1);定义严格模式的中间件开启
namespace app\middleware;定义的命名空间
Check 中间件的类名
Handle 方法,对请求进行过滤的方法
四.查看$request是什么?
是一个参数对象
五.中间件启用的配置
1)、再config下的middleware.php下的配置
2)、再app目录下的middleware.php的配置
六.全局中间件的案例,有name参数就跳转到hello方法中(满足没登录跳转到登录页面)
if($request->param('name')){
return redirect('/index/index/hello');
}
return $next($request);
七.应用中间件
把app下的全局middleware.php复制一份放到应用下(例如app/index下)然后把app下middleware.php的配置去掉
八.路由中间件,以下文件写入如下代码
Route::rule('hello/:name','hello')
->middleware(\app\middleware\Check::class);
Route::get('hello/:name/[:year]', 'index/hello');
访问:hello/111 跳转到index/index/hello
九.控制器中间件
protected $middleware = [\app\middleware\Check::class];