Post Top Ad

Your Ad Spot

domingo, 19 de abril de 2020

Controlador Middleware

También podemos asignar el middleware a las rutas del controlador dentro de sus archivos de ruta.
Hay varias formas de asignar el middleware al controlador:
Asignación del middleware al controlador en el archivo web.php.
Podemos asignar el middleware al controlador en el archivo web.php . Los siguientes son los pasos necesarios para asignar el middleware:
Paso 1: Primero, creamos un controlador. Ya hemos creado el controlador nombrado como PostController en el tema anterior.
Paso 2: Ahora, creamos el middleware, que queremos asignar al PostController . Utilizamos el siguiente comando para crear el middleware:
  1. marca artesanal php: comprobación de middleware  
El comando anterior crea el middleware llamado Check.
Middleware controlador Laravel
Paso 3: Abra el archivo Check.php creado en el directorio laravelproject / app / http / Middleware .
  1. <? php  
  2. Aplicación de espacio de nombres \ Http \ Middleware;  
  3. usar  cierre;  
  4.  Verificación de   clase
  5. {  
  6.     / ** 
  7.      * Manejar una solicitud entrante. 
  8.      * @param \ Illuminate \ Http \ Request $ request 
  9. @param \ Closure $ next 
  10.      * @retorno mezclado 
  11.      * /  
  12.      identificador de función pública $ solicitud , cierre  $ siguiente )   
  13.    {  
  14.         echo "Middleware en Laravel <br> <br>" ;     
  15.         devolver $ siguiente $ solicitud );   
  16.     }  
  17. }  
Paso 4: Ahora, tenemos que agregar la ruta del middleware Check.php en el archivo kernel.php .
  1. protected $ routeMiddleware  = [   
  2.         'auth'  => \ Illuminate \ Auth \ Middleware \ Authenticate :: class ,  
  3.         'auth.basic'  => \ Illuminate \ Auth \ Middleware \ AuthenticateWithBasicAuth :: class ,  
  4.         'bindings'  => \ Illuminate \ Routing \ Middleware \ SubstituteBindings :: class ,  
  5.         'can'  => \ Illuminate \ Auth \ Middleware \ Authorize :: class ,  
  6.         'guest'  => \ App \ Http \ Middleware \ RedirectIfAuthenticated :: class ,  
  7.         'throttle'  => \ Illuminate \ Routing \ Middleware \ ThrottleRequests :: class ,  
  8.         'age'  => \ App \ Http \ Middleware \ CheckAge :: class ,  
  9.            'check' => \ App \ Http \ Middleware \ Check :: class  
  10. ];  
En el código anterior, la instrucción resaltada agrega la ruta del middleware, es decir, Verificar .
Paso 5: Agregue el siguiente código en el archivo web.php para asignar el middleware al PostController .
  1. Route :: get ( 'posts' ,  'PostController @ create' ) -> middleware ( 'check' );  
El código anterior asigna el middleware, es decir, verifique el PostController.
Paso 6: Ingrese la URL http: // localhost / laravelproject / public / posts en el navegador web, luego la salida sería:
Middleware controlador Laravel
Usando el constructor Controlador
También podemos usar el constructor del controlador para asignar el middleware. Es más conveniente ya que restringe el middleware a solo métodos específicos en una clase de controlador.
Los siguientes son los pasos necesarios para asignar el middleware utilizando el constructor Controller:
  • Siga los pasos del paso 1 al paso 4 del caso anterior.
  • Agregue el siguiente código en el archivo web.php :
  1. Route :: get ( 'posts' ,  'PostController @ create' );  
  • Abra el archivo PostController.php .
    Si queremos asignar el middleware al método show () del PostController; entonces, necesitamos agregar el siguiente código en el archivo PostController.php.
  1. función pública  __construct ()   
  2.     {  
  3.         $ this -> middleware ( 'check' ) -> only ( 'show' );  
  4.    }    
El código anterior asigna el middleware para mostrar solo el método ().
Después de agregar el código anterior en PostController, la estructura de postController se vería así:
  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.     
  11. $ this -> middleware ( función  ( $ request ,  $ next ) {  
  12.     // ...  
  13. // echo "Middleware en Laravel";  
  14.     devolver $ siguiente $ solicitud );   
  15. });  
  16.   
  17.  índice de función pública () {   
  18.   //  
  19.     }  
  20. / ** 
  21.      * Mostrar el formulario para crear un nuevo recurso. 
  22.      * @return \ Illuminate \ Http \ Response 
  23.      * /  
  24.       
  25. función pública  create () {   
  26.     devuelve "este es un método de creación" ;   
  27. }  
  28.   
  29. / ** 
  30.      * Almacene un recurso recién creado en el almacenamiento. 
  31.       
  32.      * @param \ Illuminate \ Http \ Request    
  33. $ solicitud 
  34.      * @return \ Illuminate \ Http \ Response 
  35.      * /  
  36.       
  37.  tienda de funciones públicas (Solicitud  $ solicitud )   
  38.  {  
  39.         //  
  40.  }  
  41.   
  42.  / ** 
  43.      * Mostrar el recurso especificado. 
  44.      * @param int $ id 
  45.      * @return \ Illuminate \ HttpResponse 
  46.      * /  
  47.       
  48. función pública  show ( $ id )   
  49.   {  
  50.         devuelve "id is:" $ id ;   
  51.    }  
  52. / ** 
  53.      * Mostrar el formulario para editar el recurso especificado. 
  54.      * * 
  55.      * @param int $ id 
  56.      * @regreso   
  57. \ Illuminate \ Http \ Response 
  58.      * /  
  59.       
  60. función pública  editar ( $ id )   
  61.       
  62. {  
  63.           
  64. //  
  65.       
  66. }  
  67.   
  68.       
  69. / ** 
  70.      * Actualiza el recurso especificado en el almacenamiento. 
  71.      * * 
  72.      * @param \ Illuminate \ Http \ Request    
  73. $ solicitud 
  74.      * @param int $ id 
  75.      * @return \ Illuminate \ Http \ Response 
  76.      * /  
  77.       
  78.  actualización de la función pública (Solicitud  $ solicitud ,  $ id )   
  79.       
  80. {  
  81.           
  82. //  
  83.       
  84. }  
  85.   
  86.       
  87. / ** 
  88.      * Eliminar el recurso especificado del almacenamiento. 
  89.      * @param int $ id 
  90.      * @return \ Illuminate \ Http \ Response 
  91.      * /  
  92.    función pública  destruir ( $ id )   
  93.   {  
  94.           
  95. //  
  96.     }}  
Salida
Si accedemos a la URL http: // localhost / laravelproject / public / posts, la salida sería:
Middleware controlador Laravel
La salida anterior muestra que cuando accedemos al método create (), el archivo Check.php (middleware) del middleware no se ejecutará.
Si cambiamos el código del archivo web.php, y el código es:
  1. Route :: get ( 'posts / {id}' ,  'PostController @ show' );  
Salida
Middleware controlador Laravel
En el caso anterior, estamos accediendo al método show () del archivo PostController.php , por lo que también está ejecutando el archivo Check.php (middleware).
Cierre de middleware
Los controladores también le permiten registrar las rutas utilizando el cierre de middleware. Permite que la aplicación defina el middleware para un solo controlador sin definir la clase de middleware por separado.
Sintaxis del cierre de middleware
  1. $ this -> middleware ( función  ( $ request ,  $ next ) {  
  2.     // ...  
  3.   devolver $ siguiente $ solicitud );   
  4. });  

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas