1. 在路由中间件,我们可以设置多个中间件,进行调用;
->middleware( 'check ', 'auth ');
2. 如果你没有在配置中注册中间件,可以采用完整的类名来进行调用;
->middleware(\App\Http\Middleware\Check ::class);
3. 全局中间件,直接配置在$middleware 属性即可,每次执行都必然调用;
php artisan make:middleware Every;
protected $middleware = [
\App\Http\Middleware\Every ::class,
]
4. 中间件的核心方法可以有第三个参数,可以在控制器调用时传递;
public function handle($request, Closure $next, $param)
->middleware( 'check:abc ');
5. 中间件组,如果有一些需要固定调用多个中间件,我们可以将它群组;
protected $middlewareGroups = [
'mymd ' => [ 'check '=>\App\Http\Middleware\Check ::class,]
];
6. 中间件的 terminate()方法,可以在中间件响应完之后(return $next)再调用;
public function terminate($request, $response)
{
echo '<br>Http 响应完毕之后再调用我';
}
7. 中间件也可以在控制器的构造方法里调用,这里注意错误跳转会死循环;
public function __construct()
{
$this->middleware( 'check:abc ');
}