Post Top Ad

Your Ad Spot

viernes, 17 de abril de 2020

Controladores de recursos Laravel

Los controladores de recursos Laravel proporcionan las rutas CRUD al controlador en una sola línea de código. Se utiliza un controlador de recursos para crear un controlador que maneje todas las solicitudes http almacenadas por su aplicación.
El recurso () es una función estática como el método get () que da acceso a múltiples rutas que podemos usar en un controlador.
Sintaxis del método resource ():
Route :: resource ('posts', 'PostController');
En la sintaxis anterior, 'posts' contiene todas las rutas y 'PostController' es el nombre del controlador. En este caso, no necesitamos especificar el nombre del método como @index como lo hicimos en el método get () porque los métodos create (), store (), destroy () ya están disponibles en la clase PostController.
Comprendamos a través de un ejemplo:
Paso 1: cree el controlador mediante el comando que se proporciona a continuación:
  1. php artisan make: controlador PostController -resource;  
El comando anterior creará el controlador en el directorio app / Http / Controllers / PostController.php . La clase PostController contiene los métodos para cada operación de recursos.
La estructura del archivo PostController.php se da a continuación:
  1. <? php  
  2. aplicación de espacio de nombres \ Http \ Controllers;  
  3. use  Illuminate \ Http \ Request;  
  4. clase  PostController  extiende  controlador  
  5. {  
  6.     / ** 
  7.      * Mostrar una lista del recurso. 
  8.      * @return \ Illuminate \ Http \ Response 
  9.      * /  
  10.  índice de función pública ()   
  11. {  
  12.           
  13. //  
  14.       
  15. }  
  16. / ** 
  17.      * Mostrar el formulario para crear un nuevo recurso. 
  18.      * @return \ Illuminate \ Http \ Response 
  19.        
  20. * /  
  21.  función pública  create ()   
  22. {  
  23.           
  24. //  
  25.       
  26. }  
  27. / ** 
  28.      * Almacene un recurso recién creado en el almacenamiento. 
  29.      * * 
  30.      * @param \ Illuminate \ Http \ Request $ request 
  31.      * @return \ Illuminate \ Http \ Response 
  32.      * /  
  33.  tienda de funciones públicas (Solicitud  $ solicitud )   
  34. {  
  35.           
  36. //  
  37.       
  38. }  
  39. / ** 
  40.      * Mostrar el recurso especificado. 
  41.      * @param int $ id 
  42.      * @return \ Illuminate \ Http \ Response 
  43.      * /  
  44. función pública  show ( $ id )   
  45. {  
  46.   
  47.   //  
  48. }  
  49. / ** 
  50.      * Mostrar el formulario para editar el recurso especificado. 
  51.      * @param int $ id 
  52.      * @return \ Illuminate \ Http \ Response 
  53.      * /  
  54.  función pública  editar ( $ id )   
  55.       
  56. {  
  57.           
  58. //  
  59.       
  60. }  
  61. / ** 
  62.      * Actualiza el recurso especificado en el almacenamiento. 
  63.      * @param \ Illuminate \ Http \ Request $ request 
  64.      * @param int $ id 
  65.      * @return \ Illuminate \ Http \ Response 
  66.      * /  
  67.   actualización de la función pública (Solicitud  $ solicitud ,  $ id )   
  68. {  
  69.           
  70. //  
  71.       
  72. }  
  73. / ** 
  74.      * Eliminar el recurso especificado del almacenamiento. 
  75.      * @param int $ id 
  76.      * @return \ Illuminate \ Http \ Response 
  77.      * /  
  78.  función pública  destruir ( $ id )   
  79.  {  
  80.           
  81. //}}  
Paso 2: Ahora, necesitamos registrar la ruta ingeniosa al Controlador, y que se puede hacer de la siguiente manera:
  1. Route :: resource ( 'posts' 'PostController' );  
Abra la ventana Git Bash e ingrese el comando php artisan route: list . Este comando produce el siguiente resultado:
Controladores de recursos Laravel
El parámetro post en el método resource () produce los nombres o recursos que se muestran en el resultado anterior y sus métodos correspondientes. En el resultado anterior, posts.destroy está enviando un parámetro al método Delete, que es muy especial en Laravel.
Comprendamos el concepto de recursos a través de un ejemplo.
Accediendo al método show () de la clase PostController
Supongamos que queremos llamar al método show () del archivo PostController.php. Para hacerlo, agregue el código en el método show (). Agregué el siguiente código en el método show ():
  1.  función pública show ($ id)  
  2. {  
  3. return "se llama al método show y la ID es:" $ id;   
  4. }  
Como sabemos, el URI de posts.show es posts / {posts}, lo que significa que también debemos ingresar el parámetro para acceder al método show () de la clase PostController .
Supongamos que ingresé la URL como ' localhost / laravelproject / public / posts / 58 ', luego el resultado sería:
Controladores de recursos Laravel
Accediendo al método create () de la clase PostController
Paso 1: Primero, necesitamos agregar el código en el método create (). Agregué el siguiente código:
  1.  función pública create ()  
  2. {  
  3.      return "Este es el método de creación" ;   
  4. }  
Como sabemos que el URI de posts.create es posts / create, la URL para acceder al método create () sería ' localhost / laravelproject / public / posts / create '.
Paso 2: Ingrese la URL ' localhost / laravelproject / public / posts / create ' en el navegador, luego la salida sería:
Controladores de recursos Laravel

Registrar rutas para múltiples controladores

Podemos registrar las rutas para múltiples controladores pasando una matriz al método resources () . Supongamos que yo quiero registrar las rutas para los dos controladores, como PostController y StudentController . Los siguientes son los pasos para lograr esto:
Paso 1: En primer lugar, es necesario crear el PostController y StudentController utilizando los siguientes comandos:
  1. Marca artesanal de php: controlador PostController;  // para crear el PostController.  
  2. Marca artesanal de php: controlador StudentController;  // para crear el StudentController.  
Paso 2: Agregue el código que figura a continuación en el archivo web.php para registrar rutas:
  1. ruta :: recursos (  
  2. 'posts' => 'PostController' ,  
  3. 'student' => 'StudentController' ]  
  4. );  
Paso 3: Ingrese el comando php artisan route: list en la ventana de Git Bash.
Controladores de recursos Laravel
La pantalla anterior muestra que las rutas de PostController y StudentController están registradas.

Rutas de recursos parciales

Cuando no deseamos registrar las rutas para todos los métodos, podemos hacerlo especificando solo aquellas funciones que el controlador puede manejar.
Pasos para crear las rutas de recursos parciales:
Paso 1: Primero, creamos el StudentController usando el siguiente comando:
  1. php artisan make: controlador StudentController;  

Controladores de recursos Laravel
Paso 2: Ahora, agregamos el siguiente comando en el archivo web.php para crear las rutas de recursos parciales.
  1. Route :: resource ( 'estudiante' 'StudentController' , [ 'only'  => [ 'create' 'show' ]]);  
Paso 3: para verificar si el código anterior ha registrado las rutas para los métodos especificados o no, escriba el comando ' php artisan route: list ' en la ventana de Git Bash.
Controladores de recursos Laravel
La pantalla anterior muestra que se han generado las rutas para los métodos create () y show ().

Nombramiento de rutas de recursos

Todos los métodos del controlador tienen un nombre de ruta predeterminado, pero Laravel le permite anular los nombres de ruta pasando la matriz de nombres. La matriz de nombres contiene el nombre de las rutas que desea especificar de su elección.
Vamos a entender las 'Rutas de recursos de nombres' a través de un ejemplo.
  • Podemos agregar el siguiente código en el archivo web.php para nombrar las rutas de recursos.
  1. Route :: resource ( 'estudiante' ,  'StudentController' , [ 'nombres'  => [ 'create'  => 'student.build' ]]);  
  • Ahora, ingrese el comando php artisan route: list en la ventana de Git Bash.
Controladores de recursos Laravel
La pantalla anterior muestra que el nombre de la ruta del método create () se ha renombrado como student.build , y su nombre predeterminado era student.create .

Nombrar parámetros de ruta de recursos

El método Route :: resource () genera los parámetros de ruta para todas las rutas de recursos automáticamente, pero podemos anular los parámetros de ruta utilizando la matriz de parámetros. La matriz de parámetros es una matriz asociativa del nombre del recurso y los parámetros de ruta.
  • Podemos anular los parámetros de ruta agregando el siguiente código en el archivo web.php :
  1. Route :: resource ( 'estudiante' ,  'StudentController' , [ 'parámetros'  => [ 'estudiante'  =>  'admin_student' ]]);  
El código anterior asigna el parámetro de ruta, es decir, admin_student al recurso del alumno .
  • Para verificar la lista de todos los parámetros de ruta, utilizamos el comando que se muestra a continuación:
    php artisan route: list.
Controladores de recursos Laravel
La pantalla anterior muestra que el parámetro admin_student se agrega en una ruta.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas