resource - middleware route laravel
Laravel 5 Rutas ingeniosas más Middleware (4)
¿Es posible agregar middleware a todos o algunos elementos de una ruta ingeniosa?
Por ejemplo...
<?php
Route::resource(''quotes'', ''QuotesController'');
Además, si es posible, quería hacer que todas las rutas, aparte de
index
y
show
utilicen el middleware de
auth
.
¿O sería esto algo que debe hacerse dentro del controlador?
En el constructor
QuotesController
puede usar:
$this->middleware(''auth'', [''except'' => [''index'',''show'']]);
Referencia: middleware del controlador en Laravel 5
En laravel 5.5 con php 7 no funcionó para mí con exclusión de métodos múltiples hasta que escribí
Route::group([''middleware'' => ''auth:api''], function() {
Route::resource(''categories'', ''CategoryController'', [''except'' => ''show,index'']);
});
tal vez eso ayude a alguien.
He estado buscando una mejor solución para Laravel 5.8+.
Esto es lo que hice:
Aplique middleware a los recursos, excepto aquellos a quienes no desea que se aplique el middleware. (Aquí indice y muestre)
Route::resource(''resource'', ''Controller'', [ ''except'' => [ ''index'', ''show'' ] ]) ->middleware([''auth'']);
Luego, cree las rutas de recursos que estaban excepto en la primera. Así que indexa y muestra.
Route::resource(''resource'', ''Controller'', [ ''only'' => [ ''index'', ''show'' ] ]);
Puede usar Route Group junto con el concepto de Middleware: http://laravel.com/docs/master/routing
Route::group([''middleware'' => ''auth''], function()
{
Route::resource(''todo'', ''TodoController'', [''only'' => [''index'']]);
});