Las rutas en Laravel son el mecanismo que permite definir cómo responde tu aplicación a las solicitudes HTTP entrantes. Todas las rutas de Laravel se definen en los archivos dentro del directorio routes/.
Las rutas son fundamentales en Laravel y ofrecen muchas más posibilidades como middleware, binding de modelos, subdominios, etc. Esta es solo una introducción básica.
Route::get('/usuario/{id}',function($id){// Creas un arreglo con todos los datos$datosUsuario=['id'=>$id,'nombre'=>'Juan','email'=>'juan@email.com','edad'=>30,'direccion'=>'Calle Principal 123'];returnview('perfil')->with('usuario',$datosUsuario);});
// En web.phpRoute::get('/usuario/{id}',[UserController::class,'show']);// En UserController.phppublicfunctionshow($id){$nombre="Juan";$datos=['email'=>'juan@email.com','edad'=>30];returnview('perfil',['id'=>$id,'nombre'=>$nombre,'datos'=>$datos]);}
5. En la vista (perfil.blade.php)
blade
<h1>Perfil de usuario</h1>
<p>ID: {{ $id }}</p>
<p>Nombre: {{ $nombre }}</p>
<h2>Datos del usuario:</h2>
<ul>
<li>Email: {{ $datos['email'] }}</li>
<li>Edad: {{ $datos['edad'] }}</li>
</ul>
{{-- O si es un array indexado --}}
@foreach($datos as $key => $value)
<li>{{ $key }}: {{ $value }}</li>
@endforeach
Ejemplo con múltiples parámetros en la ruta
php
// Ruta con múltiples parámetrosRoute::get('/producto/{categoria}/{id}',function($categoria,$id){$producto=['nombre'=>'Laptop','precio'=>1000];$caracteristicas=['RAM'=>'8GB','SSD'=>'256GB'];returnview('producto',compact('categoria','id','producto','caracteristicas'));});
La opción más común y recomendada es usar compact() o el arreglo asociativo directo, ya que son más limpios y fáciles de leer.
Comandoroute:listen Laravel
El comandoroute:listes una herramienta muy útil que muestra una tabla con todas las rutas registradas en tu aplicación Laravel, incluyendo sus métodos HTTP, URIs, nombres (si los tienen), acciones y middlewares aplicados.
Ejemplo de uso
Para ver la lista de rutas, ejecuta en tu terminal:
bash
Copy
Download
php artisan route:list
Esto mostrará una salida similar a:
Copy
Download
+--------+----------+-------------------+------+---------+--------------+
| Method | URI | Name | Action | Middleware |
+--------+----------+-------------------+------+---------+--------------+
| GET | / | | Closure | web |
| GET | saludo | | Closure | web |
| GET | usuario/{id} | | Closure | web |
| GET | perfil | perfil | Closure | web |
| GET | productos | | ProductoController@index | web |
+--------+----------+-------------------+------+---------+--------------+
Opciones útiles del comando
Puedes usar varias opciones para filtrar o formatear la salida:
bash
Copy
Download
# Mostrar solo rutas con nombre
php artisan route:list --name=perfil
# Mostrar rutas que coincidan con un URI específico
php artisan route:list --path=usuario
# Mostrar en formato JSON
php artisan route:list --json# Mostrar más detalles (incluyendo middlewares)
php artisan route:list -v
Tabla actualizada con el comandoroute:list
Comando
Explicación
php artisan route:list
Muestra una tabla con todas las rutas registradas, sus métodos, URIs, nombres y acciones
Route::get($uri, $callback)
Define una ruta que responde a solicitudes GET
Route::post($uri, $callback)
Define una ruta que responde a solicitudes POST
Route::put($uri, $callback)
Define una ruta que responde a solicitudes PUT
Route::patch($uri, $callback)
Define una ruta que responde a solicitudes PATCH
Route::delete($uri, $callback)
Define una ruta que responde a solicitudes DELETE
Route::any($uri, $callback)
Responde a cualquier método HTTP
Route::match(['get', 'post'], $uri, $callback)
Responde solo a los métodos especificados
Route::redirect($from, $to)
Redirige una URI a otra
Route::view($uri, $view)
Devuelve una vista sin necesidad de controlador
Route::resource($name, $controller)
Genera todas las rutas RESTful para un recurso
->name($name)
Asigna un nombre a la ruta
->middleware($middleware)
Aplica middleware a la ruta
->where($param, $regex)
Aplica restricciones a los parámetros de ruta
Route::prefix($prefix)->group()
Agrupa rutas con un prefijo común
Route::namespace($namespace)->group()
Agrupa rutas bajo un namespace específico
El comandoroute:listes especialmente útil para:
Depurar problemas de rutas
Verificar que todas las rutas estén correctamente definidas
Creación de una API RESTful con Laravel En este tutorial, te guiaré paso a paso para crear una API RESTful básica con Laravel, incluyendo autenticación, rutas, controladores y migraciones. Requisitos previos PHP ≥ 8.1 Composer instalado Laravel instalado globalmente Conocimientos básicos de PHP y Laravel Base de datos configurada (MySQL, PostgreSQL, SQLite, etc.) Paso 1: Crear un nuevo proyecto Laravel bash laravel nuevo mi-api-laravel # O usando composer composer create-project laravel/laravel mi-api-laravel Accede al directorio del proyecto: bash cd mi-api-laravel Paso 2: Configurar la base de datos Abre el archivo .env y configura las credenciales de tu base de datos: env DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=mi_api_laravel DB_USERNAME=root DB_PASSWORD= Paso 3: Crear un modelo con migración, controlador y factory Vamos a crear un modelo Producto como ejemplo: bash php artisan make:model Producto -mcr Esto creará: Un modelo ( ...
Rutas en Laravel: Explicación y Ejemplos Las rutas en Laravel son el mecanismo que permite definir cómo responde tu aplicación a las solicitudes HTTP entrantes. Todas las rutas de Laravel se definen en los archivos dentro del directorio routes/ . 2. Rutas con parámetros php Copy Download Route :: get ( '/usuario/{id}' , function ( $id ) { return 'Usuario ' . $id ; } ) ; Esta ruta capturará el ID de la URL y lo pasará a la función. 3. Rutas con parámetros opcionales php Copy Download Route :: get ( '/post/{titulo?}' , function ( $titulo = 'Título por defecto' ) { return $titulo ; } ) ; El parámetro titulo es opcional y tiene un valor por defecto. 5. Rutas con nombre php Copy Download Route :: get ( '/perfil' , function ( ) { // ... } ) -> name ( 'perfil' ) ; Puedes generar URLs a esta ruta usando route('perfil') . Rutas hacia controladores php Copy Download Route :: get ( '/productos'...
Comentarios
Publicar un comentario