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
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
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
Route::get('/perfil', function () {
// ...
})->name('perfil');Puedes generar URLs a esta ruta usando route('perfil').
Rutas hacia controladores
Route::get('/productos', 'ProductoController@index');Esto dirigirá las solicitudes GET a /productos al método index de ProductoController.
En routes/web.php:
use App\Http\Controllers\TaskController;
Route::resource('tasks', TaskController::class);Tips Importantes
Redirecciones:
return redirect()->route('tasks.index'); // Redirige a la lista de tareas
return redirect()->back(); // Redirige a la página anterior
Mensajes de sesión:
return redirect()->route('tasks.index')->with('success', 'Tarea creada!');
Redirecciones:
return redirect()->route('tasks.index'); // Redirige a la lista de tareas return redirect()->back(); // Redirige a la página anterior
Mensajes de sesión:
return redirect()->route('tasks.index')->with('success', 'Tarea creada!');
1. Rutas individuales (manualmente)
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');
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:
use App\Http\Controllers\TaskController;
use Illuminate\Support\Facades\Route;
Route::resource('tasks', TaskController::class);
Route::resource:use App\Http\Controllers\TaskController;
use Illuminate\Support\Facades\Route;
Route::resource('tasks', TaskController::class);Tabla de comandos comunes de rutas
| Comando | Explicació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:
php artisan route:listEsto mostrará una salida similar a:
+--------+----------+-------------------+------+---------+--------------+
| 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
Publicar un comentario