Page 121 - 0149-curso-laravel-5_Neat
P. 121
Laravel 5
En ocasiones nos interesará declarar solamente un subconjunto de las acciones que
soporta REST, para esto, al declarar la ruta tipo resource tenemos que añadir un tercer
parámetro con la opción only (para que solo se creen esas rutas) o except (para que se
creen todas las rutas excepto las indicadas), por ejemplo:
Route::resource('photo', 'PhotoController',
['only' => ['index', 'show']]);
Route::resource('photo', 'PhotoController',
['except' => ['create', 'store', 'update', 'destroy']]);
Los métodos que no utilicemos los podremos borrar del código generado para el
controlador.
Rutas adicionales en un controlador tipo
RESTful
Si queremos definir rutas adicionales para un controlador de recursos simplemente las
tenemos que añadir al fichero de rutas routes/web.php antes que las rutas del propio
recurso, por ejemplo:
Route::get('photos/popular', 'PhotoController@getPopular');
Route::resource('photos', 'PhotoController');
Middleware
Para añadir middleware a un controlador tipo recurso tenemos dos opciones. La primera es
definir un grupo que lo englobe, por ejemplo:
Route::group(['middleware' => 'auth'], function() {
Route::resource('photo', 'PhotoController');
});
La otra opción es definir el middleware en el constructor del controlador de la forma:
Controladores de recursos RESTful 121