bienes

Laravel: introducción al enrutamiento de laravel

El enrutamiento en Laravel permite a los usuarios enrutar todas las solicitudes de aplicaciones al controlador apropiado. La mayoría de las rutas principales en Laravel reconocen y aceptan un Identificador uniforme de activos junto con un cierre, lo que proporciona una forma de enrutamiento simple y expresiva.

¿Qué es una ruta (route)?

La ruta es una forma de crear una URL de solicitud para su aplicación. Estas URL no necesitan estar asociadas con archivos específicos en un sitio web y son legibles por humanos y compatibles con SEO.

En Laravel, las rutas se crean dentro de la carpeta de archivos. routes. Se crean en el archivo. web.php para sitios web, y dentro api.php para las API.

Estos route se asignan al grupo middleware red, destacando el estado de la sesión y la seguridad CSRF. Las rutas en route/api.php no tienen estado y están asignados al grupo de middleware de API.
la preinstalaciondefiLaravel nita viene con dos rutas, una para la web y otra para la API. Así es como se ve la ruta para la web en web.php:

Route::get('/', function () {
   return view('welcome');
});

¿Qué es una ruta en Laravel?

Todos los caminos de Laravel son definiti en los archivos de ruta ubicados dentro del directorio routes. La aplicación de gestión de rutas, defiterminado en el archivo App\Providers\RouteServiceProvider, se encarga de alinear automáticamente estos archivos. El archivo route/web.php defiFinaliza las rutas para su interfaz web.

puede defiFinalice una ruta para esta acción del controlador de la siguiente manera:

Route::get(‘user/{id}’, ‘UserController@show’);

Route::resource: el método Route::resource produce todas las rutas básicas requeridas para una aplicación y se administra a través de la clase de controlador.

Cuando una solicitud coincide con el URI de ruta especificado, se invoca el método show defiterminado en el controlador App\Http\ControllersUserController, pasando los parámetros de ruta al método.

Para obtener recursos, debe hacer dos cosas en la aplicación laravel. Primero, debe crear una ruta de recursos en laravel que proporciona rutas de inserción, actualización, visualización y eliminación. En segundo lugar, cree un controlador de recursos que proporcione un método para insertar, actualizar, ver y eliminar.

la preinstalaciondefiLaravel nita viene con dos caminos: uno para la web y otro para la API. Así es como se ve la ruta a la web en web.php:

Route::get(‘/’, function () {

return view(‘welcome’);

});

Programa intermedio de Laravel actúa como un puente entre la petición y la reacción. Puede ser algún tipo de componente de filtro.

laravel trabajar con un middleware que tiene la tarea de confirmar si la aplicación del cliente está verificada o no. En caso de que se confirme el cliente, el enrutamiento redirige a la página de inicio o una página de inicio de sesión.

Los métodos para la route

El código anterior defitermina una ruta a la página de inicio. Cada vez que esta ruta recibe una solicitud get para /, devolverá el view welcome

Todos los caminos de Laravel son definiti en tu routing, que se encuentran dentro del directorio dei routes. Como consecuencia, l'AppProvidersRouteServiceProvider de la aplicación alinea estos registros. El archivo route/web.php contiene las rutas que se administran para su interfaz web.

La estructura de la ruta es muy simple. Abra el archivo apropiado (`web.phpo `api.php) y comenzar la línea de código con `Route:: `, seguido de la solicitud que desea asignar a esa ruta específica y luego especifique la función que se realizará después de la solicitud.

Laravel ofrece los siguientes métodos de ruta:

  • get
  • post
  • put
  • delete
  • patch
  • options

los caminos son definited en Laravel dentro de la clase Route con HTTP, la ruta para responder y cerrar, o el controlador.

Cómo crear rutas en Laravel

Veamos cómo puedes crear tus propios caminos en Laravel.

Una ruta GET básica

Ahora voy a crear una ruta básica que imprimirá la tabla de multiplicar de 2.

Route::get('/table', function () {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * 2 = ". $i*2 ."<br>";
   }   
});

En el código anterior, creé una ruta de solicitud GET para la URL /table, que imprimirá la tabla de multiplicar de 2 en la pantalla.

Ahora veamos el mismo código, parametrizando el número para el que queremos la tabla de multiplicar:

Route::get('/table/{number}', function ($number) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

En el código el 'number' entre las llaves representa el parámetro, es decir, el número para el que se calculará la tabla de multiplicar. Siempre que se especifica una URL del tipo /table/n, luego se imprimirá la tabla numérica n.

También existe la forma de combinar ambas características en un solo camino. Laravel ofrece la función de parámetros opcionales que le permite agregar parámetros opcionales usando el signo de interrogación '?' después del parámetro opcional y el valor predefinoche Veamos el ejemplo:

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

En el código anterior, creamos nuestro parámetro de ruta, haciendo que el número sea opcional, por lo que si un usuario enruta `/table`entonces generará la tabla de 2 por defectodefinite y si un usuario enruta a `/table/{number}Entonces la tabla de números 'number' se producira.

Expresiones regulares como restricciones para parámetros de ruta

En el ejemplo anterior creamos un camino para generar la tabla de multiplicar, pero ¿cómo podemos asegurarnos de que el parámetro del camino sea realmente un número, para evitar errores al generar la tabla de multiplicar?

En Laravel, puedes defiterminar una restricción en el parámetro de ruta usando el método `where` en la instancia de la ruta. el `where` toma el nombre del parámetro y una expresión regular para ese parámetro.

Boletín de innovación
No te pierdas las noticias más importantes sobre innovación. Regístrese para recibirlos por correo electrónico.

Ahora veamos un ejemplo de una restricción para nuestro parámetro `{numero}` para asegurarse de que solo se pase un número a la función.

Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {    
   for( $i = 1 ; $i < = 10 ; $i + + ) {   
       echo "$i * $numero = " . $i * $numero . "<br>" ; 
   }   
} )->where( 'numero' , '[0-9]+' ) ;

En el código anterior, usamos una expresión regular para el número de ruta. Ahora, si un usuario intenta enrutar a /mesa/no será mostrado una excepción NotFoundHttpException.

Enrutamiento Laravel con función de control

En Laravel, puedes defiFinalizar un método de controlador para una ruta. Un método de controlador realiza todas las acciones. defifinita cada vez que un usuario accede a la ruta.
Con el siguiente código estamos asignando el método del controlador. 'functionname' a una ruta:

Route:: get ( '/home' , 'YourController@functionname' ) ;

El código comienza con `Route::` y luego defifinaliza el método de solicitud de la ruta. Después, defiFinalice su ruta y controlador junto con el método agregando el símbolo @ antes del nombre del método.

Dale un nombre a la ruta

En Laravel, puedes defiTermina un nombre para tu camino. Este nombre suele ser muy útil. Por ejemplo, si desea redirigir a un usuario de una ubicación a otra, no tiene que defiFinalice la URL de redirección completa. Solo puedes dar su nombre. Puede defiterminar el nombre de la ruta usando el método `name` en la instancia de la ruta.

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
})->where('number', '[0-9]+')->name(‘table’);

Ahora, podría regenerar la url para esta ruta, a través del siguiente código:

$url = route('table');

Del mismo modo, para redirigir a esta URL, la sintaxis correcta sería:

return redirect()->route('table');

Route Groups

I Route Groups, literalmente grupos de rutas, es una característica esencial en Laravel, que te permite agrupar rutas. Los grupos de rutas son útiles cuando desea aplicar atributos a todas las rutas agrupadas. Si usa grupos de rutas, no tiene que aplicar los atributos individualmente a cada ruta; esto evita la duplicación. Te permite compartir atributos como middleware o namespaces, senza defitermine estos atributos en cada camino individual. Estos atributos compartidos se pueden pasar en un formato de matriz como el primer parámetro del método Route::group.

Sintaxis de un grupo de rutas

Route::group([], callback);  

donde []: es una matriz que se pasa al método de grupo como primer parámetro.

Ejemplo de Route Group en web.php

Route::group([], function()  
{  
   Route::get('/first' , function()  
   {  
      echo "first way route" ;   
   });  
   Route::get('/second' , function()  
   {  
      echo "second way route" ;   
   });  
   Route::get('/third' , function()  
   {  
      echo "third way route" ;   
   });  
});  

en el código, defiencontremos el método grupo(), que contiene los dos parámetros, es decir array e closure. Dentro de closure, podemos defiterminar cuantos route queremos. En el código anterior, tenemos defiterminado tres route.

Si vía navegador accedemos a la URL localhost/myproject/first luego interviene el primero route escribiendo en el navegador first way route.

con la URL localhost/myproject/second luego viene el segundo route escribiendo en el navegador second way route.

Mientras que con la URL localhost/myproject/third luego viene el tercero route escribiendo en el navegador third way route.

prefijos de Route Groups

los prefijos de route se usan cuando queremos proporcionar una estructura de URL común a múltiples route.

Podemos especificar el prefijo para todas las rutas defifinitos dentro del grupo usando la opción de matriz de prefijos en Route Groups.

Ejemplo de web.php

Route::group(['prefix' => 'movie'], function()  
{  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
});  

El código contiene tres rutas a las que se puede acceder desde las siguientes URL:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

middleware

También podemos asignar middleware a todas las rutas dentro de un grupo. El middleware debe ser defiterminado antes de crear el grupo. Para ver cómo hacer esto, lea nuestro artículo Laravel middleware cómo funciona.

Ejemplo:

Route::middleware(['age'])->group( function()  
{  
  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
  
});  

Prefijos de nombre de ruta

El método name se utiliza para prefijar cada nombre de route con una cadena especificada. en el metodo name, necesitamos especificar la cadena con un carácter final en el prefijo.

Ejemplo web.php

Route::name('movie.')->group(function()  
{  
   Route::get('users', function()  
   {  
      return "movie.films";  
   })->name('films');  
});  

Ercole Palmeri

Boletín de innovación
No te pierdas las noticias más importantes sobre innovación. Regístrese para recibirlos por correo electrónico.

Artículos recientes

Intervención innovadora en Realidad Aumentada, con visor de Apple en el Policlínico de Catania

En el Policlínico de Catania se realizó una operación de oftalmoplastia con el visor comercial Apple Vision Pro…

3 2024 mayo

Los beneficios de los dibujos para colorear para niños: un mundo de magia para todas las edades

El desarrollo de la motricidad fina mediante la coloración prepara a los niños para habilidades más complejas como la escritura. Colorear…

2 2024 mayo

El futuro está aquí: cómo la industria naviera está revolucionando la economía global

El sector naval es una auténtica potencia económica mundial, que ha navegado hacia un mercado de 150 mil millones...

1 2024 mayo

Editores y OpenAI firman acuerdos para regular el flujo de información procesada por la Inteligencia Artificial

El lunes pasado, el Financial Times anunció un acuerdo con OpenAI. FT otorga licencia para su periodismo de clase mundial...

Abril 30 2024