2016-04-20 13 views
9

È possibile disabilitare uno specifico middleware senza disabilitare tutto il middleware?Laravel 5.2.x disabilita il middleware specifico

Lo userò quando si eseguono i test, quindi non voglio definire gruppi di middleware e quindi assegnarli ai miei percorsi.

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

$this->withoutMiddleware('web'); // <-- What I want is something like this 

risposta

0

Beh, è ​​possibile utilizzare middleware groups che è un approccio molto migliore. Definire alcuni gruppi e assegnarli ai percorsi.

+1

Web, di cui la domanda è (probabilmente) un gruppo middleware già . Anche così, questo non spiega come disabilitare un singolo middleware o gruppo middleware. –

3

devo una soluzione alternativa, si potrebbe aggiungere una condizione in middleware impatto secondo il vostro environnement:

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

    // Your middleware logic 

    return $next($request); 
} 
+0

Penso che questa dovrebbe essere una buona soluzione per me. Vorrei che esistesse un metodo per disabilitare un middleware concreto. – aleixfabra

+0

Non conosco l'esistenza di una tale funzione. Potrebbe essere una richiesta di pull intelligente per il repository laravel – soywod

+0

Sono d'accordo con te. – aleixfabra

0

Puoi aggiungere itinerari particolari alla $ tranne matrice nel middleware per sé.

Per esempio: io non voglio che i miei percorsi api abbiano web middleware, quindi questo è quello che ho fatto in VerifyCsrfToken.php

protected $except = [ 
    "api/*", 
    "more/routes", 
]; 
Problemi correlati