Laravel 5.2.x禁用特定的中间件

ale*_*bra 9 php testing middleware laravel laravel-5.2

是否可以在不禁用所有中间件的情况下禁用特定的中间件?

我将在运行测试时使用它,因此我不想定义中间件组,然后将它们分配给我的路由.

$this->withoutMiddleware(); // <-- This will prevent all middleware 

$this->withoutMiddleware('web'); // <-- What I want is something like this 
Run Code Online (Sandbox Code Playgroud)

soy*_*wod 5

我有一个替代解决方案,您可以根据您的环境在受影响的中间件中添加一个条件:

public function handle($request, Closure $next)
{
    if (App::environment('testing')) {
        return $next($request);
    }

    // Your middleware logic

    return $next($request);
}
Run Code Online (Sandbox Code Playgroud)


Kre*_*naj 0

好吧,您可以使用中间件组,这是一种更好的方法。定义几个组,并将它们分配给您的路线。