3-Rutas

 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', 'ProductoController@index');

Esto dirigirá las solicitudes GET a /productos al método index de ProductoController.

En routes/web.php:

php
Copy
Download
use App\Http\Controllers\TaskController;

Route::resource('tasks', TaskController::class);

Tips Importantes

  1. Redirecciones:

    php
    Copy
    Download
    return redirect()->route('tasks.index'); // Redirige a la lista de tareas
    return redirect()->back(); // Redirige a la página anterior
  2. Mensajes de sesión:

    php
    Copy
    Download
    return redirect()->route('tasks.index')->with('success', 'Tarea creada!');


1. Rutas individuales (manualmente)

php
Copy
Download
use App\Http\Controllers\TaskController;
use Illuminate\Support\Facades\Route;

Route::get('/tasks', [TaskController::class, 'index'])->name('tasks.index');
Route::get('/tasks/create', [TaskController::class, 'create'])->name('tasks.create');
Route::post('/tasks', [TaskController::class, 'store'])->name('tasks.store');
Route::get('/tasks/{task}', [TaskController::class, 'show'])->name('tasks.show');
Route::get('/tasks/{task}/edit', [TaskController::class, 'edit'])->name('tasks.edit');
Route::put('/tasks/{task}', [TaskController::class, 'update'])->name('tasks.update');
Route::delete('/tasks/{task}', [TaskController::class, 'destroy'])->name('tasks.destroy');

2. Rutas agrupadas con resource (recomendado)

Laravel permite generar todas las rutas CRUD automáticamente con Route::resource:

php
Copy
Download
use App\Http\Controllers\TaskController;
use Illuminate\Support\Facades\Route;

Route::resource('tasks', TaskController::class);

Tabla de comandos comunes de rutas

ComandoExplicación
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

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.


Comando route:list en Laravel

El comando route:list es 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 |
+--------+----------+-------------------+------+---------+--------------+


El comando route:list es especialmente útil para:

  • Depurar problemas de rutas

  • Verificar que todas las rutas estén correctamente definidas

  • Comprobar los middlewares aplicados a cada ruta

  • Identificar conflictos entre rutas

  • Documentar tu API o sistema de rutas

Comentarios

Entradas más populares de este blog

8-Creación de una API RESTful con Laravel

02 -Rutas en Laravel