Post Top Ad

Your Ad Spot

viernes, 17 de abril de 2020

Controladores de enrutamiento

Los controladores de enrutamiento le permiten crear las clases de controlador con métodos utilizados para manejar las solicitudes.
Ahora, entenderemos los controladores de enrutamiento a través de un ejemplo.
Paso 1: Primero, necesitamos crear un controlador. Ya creamos el controlador nombrado como ' PostController ' en el tema anterior.
Paso 2: abre el archivo web.php y escribe el siguiente código:
  1. Ruta :: get ( '/ post' 'PostController @ index' );  
En el código anterior, ' / post ' es la URL a la que queremos acceder, y PostController es el nombre del controlador. El ' índice ' es el nombre del método disponible en el archivo PostController.php , y @index indica que el método index () debe ser alcanzado cuando accedemos a la url '/ post'.
Paso 3: agregue el código que se muestra a continuación como resaltado:
  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.      * * 
  9.      * @return \ Illuminate \ Http \ Response 
  10.      * /  
  11.  índice de función pública ()   
  12. {  
  13.       volver "Hola javaTpoint" ;} →   
  14. / ** 
  15.      * Mostrar el formulario para crear un nuevo recurso. 
  16.      * * 
  17.      * @return \ Illuminate \ Http \ Response 
  18.  * /  
  19. función pública  create ()   
  20. {  
  21.         //  
  22. }  
  23. / ** 
  24.      * Almacene un recurso recién creado en el almacenamiento. 
  25.      * * 
  26.      * @param \ Illuminate \ Http \ Reques $ request 
  27.      * @return \ Illuminate \ Http \ Response 
  28.      * /  
  29.  tienda de funciones públicas (Solicitud  $ solicitud )   
  30.       
  31. {  
  32.   
  33.         //  
  34.      
  35.  }  
  36.  / ** 
  37.      * Mostrar el recurso especificado. 
  38.      * * 
  39.      * @param int $ id 
  40.      * @return \ Illuminate \ Http \ Response 
  41. * /  
  42. función pública  show ( $ id )   
  43. {  
  44.         //  
  45. }  
  46. / ** 
  47.      * Mostrar el formulario para editar el recurso especificado. 
  48.      * * 
  49.      * @param int $ id 
  50.      * @return \ Illuminate \ Http \ Response 
  51.      * /  
  52. función pública  editar ( $ id )   
  53. {  
  54.         //  
  55.  }  
  56.   
  57. / ** 
  58.      * Actualiza el recurso especificado en el almacenamiento. 
  59.      * * 
  60.      * @param \ Illuminate \ Http \ Request    
  61. $ solicitud 
  62.      * @param int $ id 
  63.      * @return \ Illuminate \ Http \ Response 
  64.      * /  
  65.       
  66.  actualización de la función pública (Solicitud  $ solicitud ,  $ id )   
  67. {  
  68.         //  
  69. }  
  70.   
  71.       
  72. / ** 
  73.      * Eliminar el recurso especificado del almacenamiento. 
  74.      * * 
  75.      * @param int $ id 
  76.      * @regreso   
  77. \ Illuminate \ Http \ Response 
  78.      * /  
  79.  función pública  destruir ( $ id )   
  80.  {  
  81.        //  
  82.   }  
  83. }  
Paso 4: Ingrese la URL en el navegador, es decir, localhost / laravelproject / public / host , luego la salida se mostrará de la siguiente manera:
Salida
Controladores de enrutamiento Laravel
Hasta ahora, hemos observado cómo podemos acceder al controlador. Ahora, veremos cómo pasar los datos a la clase Controller.
Pasar datos al controlador
Comprendamos a través de un ejemplo de cómo podemos pasar los datos al controlador:
Paso 1: abra el archivo web.php y agregue el siguiente código:
Ruta :: get ('/ post / {id}', 'PostController @ index');
El código anterior contiene el parámetro 'id' en la url '/ post'.
Paso 2: Edite el archivo PostController.php.
  1.  índice de función pública $ id )   
  2. {  
  3.     devuelve "ID is:" $ id ;   
  4. }  
En el caso anterior, hemos actualizado el método index (). Hemos pasado el parámetro 'id' en el método index ().
Paso 3: Ingrese la URL ' localhost / laravelproject / post / 100 ' en el navegador web, luego la salida se mostrará de la siguiente manera:
Controladores de enrutamiento Laravel

Controladores y espacios de nombres

Cuando especificamos la clase de controlador en el método Route :: get () , entonces no necesitamos especificar el espacio de nombres del controlador completo. Como RouteServiceProvider carga todos los archivos de ruta que contienen el espacio de nombres, solo necesitamos especificar el nombre de la clase que viene después de la parte App / Http / Controllers del espacio de nombres.
Si la clase de controlador completa es App / Http / Controllers / Post / PostController , entonces podemos registrar las rutas del controlador como se indica a continuación:
Route :: get ('\ post', 'Post \ PostController @ index');

Controladores de acción única

Si queremos usar el método único en un controlador, entonces podemos usar el método único __invoke () en el controlador.
Cuando creamos el controlador utilizando el comando php artisan: make controller PostController, la estructura del archivo PostController sería:
  1. <? php  
  2. aplicación de espacio de nombres \ Http \ Controllers;  
  3. use  Illuminate \ Http \ Request;  
  4. clase  PostController  extiende  controlador  
  5. {  
  6.       
  7.       //  
  8.   
  9. }  
Ahora, agregamos el código de la función __invoke () en una clase PostController:
  1. <? php  
  2. aplicación de espacio de nombres \ Http \ Controllers;  
  3. use  Illuminate \ Http \ Request;  
  4. clase  PostController  extiende  controlador  
  5. {  
  6.     //  
  7.  función pública  __invoke ( $ id )   
  8. {  
  9.   devuelve "id is:" $ id ;   
  10. }  
  11. }  
Al final, agregamos el código en el archivo web.php , que es responsable de manejar las acciones.
  1. route :: get ( '/ post / {id}' 'PostController' );  
El código anterior golpea el método __invoke () de una clase PostController. Esto concluye que no necesitamos escribir el método @invoke para acceder a los controladores de acción única.
Salida
Cuando ingresamos la URL ' localhost / laravelproject / public / post / 67 ', la salida sería:
Controladores de enrutamiento Laravel
Si no se especifica ninguna acción, es decir, nos olvidamos de escribir el método __invoke (), entonces se lanza la expresión UnexpectedValueExpression .
Supongamos que eliminamos el método __invoke () de la clase PostController, entonces el resultado sería:
Controladores de enrutamiento Laravel

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas