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