Page 120 - 0149-curso-laravel-5_Neat
P. 120

Laravel 5






             Controladores de recursos RESTful




             Laravel incorpora un tipo especial de controlador, llamado controlador de recuso (recource
             controller), que facilita la construcción de controladores tipo RESTful. Para esto

             simplemente tendríamos que usar el comando de Artisan   php artisan make:controller
             <nombre-controlador> --resource  para crear el controlador y añadir la ruta al fichero de rutas
               routes/web.php  usando   Route::resource .


             Por ejemplo, para crear un controlador para la gestión de imágenes almacenadas en la
             aplicación, en primer lugar ejecutaríamos el siguiente comando:



                php artisan make:controller PhotoController --resource


             Esto crearía el controlador   PhotoController  (incluyendo todos los métodos necesarios) en
             la carpeta   app/Http/Controllers . Lo único que nos faltaría es registrar las rutas asociadas

             añadiendo al fichero   routes/web.php  la siguiente línea:


                Route::resource('photo', 'PhotoController');



             Esta línea de ruta crea por si sola múltiples rutas para gestionar todos los tipos de
             peticiones RESTful. Además, el controlador creado mediante Artisan estará preparado con
             todos los métodos necesarios para responder a todas las peticiones correspondientes. En la

             siguiente tabla se muestra un resumen de todas las rutas generadas, el tipo de petición a la
             que responden y la acción que realizan en el controlador:


                    Verbo                   Ruta                Acción         Controlador / método

               GET                /photo                       index        PhotoController@index
               GET                /photo/create                create       PhotoController@create

               POST               /photo                       store        PhotoController@store

               GET                /photo/{resource}            show         PhotoController@show

               GET                /photo/{resource}/edit       edit         PhotoController@edit

               PUT/PATCH          /photo/{resource}            update       PhotoController@update

               DELETE             /photo/{resource}            destroy      PhotoController@destroy



             Restringir rutas en un controlador RESTful







             Controladores de recursos RESTful                                                          120
   115   116   117   118   119   120   121   122   123   124   125