🧭 Rutas con parámetros en Laravel

🧭 Rutas con parámetros en Laravel

Domina el manejo de parámetros en las rutas de Laravel

Las rutas con parámetros permiten que tus URLs sean dinámicas y transmitan información hacia los controladores. Laravel ofrece una forma elegante y segura de capturar valores directamente desde la URL, ideal para mostrar, editar o eliminar recursos específicos.

📘 ¿Qué es un parámetro en una ruta?

Un parámetro es una parte variable de la URL que Laravel puede recibir como argumento. Por ejemplo, la ruta /usuarios/5 puede indicar que queremos mostrar el usuario con ID 5.


use Illuminate\Support\Facades\Route;

Route::get('/usuarios/{id}', function ($id) {
    return "Mostrando el usuario con ID: " . $id;
});
  

Laravel detecta automáticamente el valor dentro de las llaves {} y lo pasa como parámetro a la función o método del controlador.

⚙️ Parámetros opcionales

Si un parámetro puede o no estar presente en la URL, se puede marcar como opcional utilizando el signo de interrogación ?:


Route::get('/productos/{categoria?}', function ($categoria = 'general') {
    return "Categoría: " . $categoria;
});
  

Si el usuario visita /productos, Laravel devolverá “Categoría: general”. Si visita /productos/electrónica, mostrará “Categoría: electrónica”.

🧩 Restricciones con expresiones regulares

Puedes validar el formato de los parámetros directamente en la definición de la ruta usando where():


Route::get('/usuarios/{id}', function ($id) {
    return "Usuario con ID: " . $id;
})->where('id', '[0-9]+');
  

En este caso, solo se aceptarán números. Si alguien intenta acceder a /usuarios/abc, Laravel mostrará un error 404 automáticamente.

🚀 Pasando parámetros a un controlador

Lo más común es que las rutas llamen a controladores en lugar de funciones anónimas. Laravel pasará automáticamente los parámetros al método correspondiente:


use App\Http\Controllers\UsuarioController;

Route::get('/usuarios/{id}', [UsuarioController::class, 'show']);
  

Y en el controlador:


public function show($id)
{
    $usuario = Usuario::findOrFail($id);
    return view('usuarios.show', compact('usuario'));
}
  

🧱 Ejemplo visual del formulario con parámetros

Supongamos que tenemos una vista para mostrar los detalles de un usuario seleccionado:



<div class="card mt-4">
  <div class="card-header bg-primary text-white">
    <h4>Detalles del Usuario</h4>
  </div>
  <div class="card-body">
    <p><strong>Nombre:</strong> {{ $usuario->nombre }}</p>
    <p><strong>Correo:</strong> {{ $usuario->email }}</p>
    <a href="{{ route('usuarios.index') }}" class="btn btn-secondary">Volver</a>
  </div>
</div>
  
💡 Tip: Usa parámetros para manejar recursos específicos (usuarios, productos, pedidos) de forma limpia y predecible. Combinados con controladores RESTful, facilitan enormemente la navegación entre vistas.

📚 En resumen:

  • Los parámetros se definen entre llaves {} en las rutas.
  • Puedes hacerlos opcionales con ?.
  • Usa where() para restringir su formato.
  • Laravel pasa automáticamente los parámetros a los métodos del controlador.

Publicar un comentario

0 Comentarios