是否可以在不禁用所有中间件的情况下禁用特定的中间件?
我会在运行测试时使用它,所以我不想定义中间件组,然后将它们分配给我的路由。
$this->withoutMiddleware(); // <-- This will prevent all middleware
$this->withoutMiddleware('web'); // <-- What I want is something like this
答案 0 :(得分:4)
我有另一种解决方案,您可以根据您的环境在受影响的中间件中添加条件:
public function handle($request, Closure $next)
{
if (App::environment('testing')) {
return $next($request);
}
// Your middleware logic
return $next($request);
}
答案 1 :(得分:0)
好吧,你可以使用middleware groups,这是一种更好的方法。定义几个组,并将它们分配给您的路线。
答案 2 :(得分:0)
您可以将特定路由添加到中间件本身的$ except数组中。
例如:我不希望我的api路由有Web中间件,所以这就是我在VerifyCsrfToken.php中所做的
protected $except = [
"api/*",
"more/routes",
];