2015-02-25 11 views
44

È possibile aggiungere il middleware a tutti o ad alcuni elementi di una risorsa Route?Laravel 5 Risorse di percorso + middleware

Se avessi qualcosa di simile

Route::resource('quotes','QuotesController'); 

E poi volevo fare, eventualmente, tutte le rotte a parte indice e spettacolo utilizzare il middleware "auth". O è qualcosa che deve essere fatto all'interno del controller?

risposta

71

In QuotesController costruttore è possibile utilizzare:

$this->middleware('auth', ['except' => ['index','show']]); 

Riferimento: Controller middleware in Laravel 5

+0

Grazie! Non ero sicuro se questo fosse qualcosa che potrebbe essere fatto all'interno della chiamata risorsa, ma non sembra essere da quello che ho visto finora – kilrizzy

+0

Ho bisogno di passare altri argomenti al middleware, è possibile da questo? – activatedgeek

+0

@activatedgeek Se hai una nuova domanda, chiedi a uno –

45

Si potrebbe utilizzare Gruppo percorso accoppiato con Middleware concetto: http://laravel.com/docs/master/routing

Route::group(['middleware' => 'auth'], function() 
{ 
    Route::resource('todo', 'TodoController', ['only' => ['index']]); 
}); 
+2

circa un anno, ma poiché sto cercando di fare lo stesso, non dovrebbe essere 'Route :: resource ('todo', 'TodoController', ['except' = > ['index']]); 'per escludere solo gli indici dal middleware auth? –

0

In laravel 5.5 con PHP 7 non ha funzionato per me con l'esclusione multi-metodo fino a quando non ho scritto

Route::group(['middleware' => 'auth:api'], function() { 

Route::resource('categories', 'CategoryController', ['except' => 'show,index']); 
}); 

forse che aiutare qualcuno.

0

provare questo

$ this-> middleware ('auth', [ 'eccezione' => [ 'indice', 'show']]);