Profundizando en las restricciones de parámetros de rutas en Laravel

  • Publicado el 17 octubre, 2024
  • Palabras: 253

¿Alguna vez te preocupa que los usuarios introduzcan datos extraños en tus parámetros de URL? ¡El método where de Laravel está aquí para salvar el día! Veamos cómo puedes mantener tus rutas bajo control con algunas restricciones simples.

Profundizando en las restricciones de parámetros de rutas en Laravel

#El poder de Where

 

El método where te permite establecer reglas para los parámetros de tu ruta mediante expresiones regulares. ¡Es como tener un discriminador para tus URL!

 

Uso básico

 

Aquí te explicamos cómo puedes usar where:

 

Route::get('/user/{name}', function (string $name) {
    // ...
})->where('name', '[A-Za-z]+');

 

Como ser más específico con los números

 

¿Necesitas asegurarte de que un identificador es en realidad un número? No hay problema:

 

Route::get('/user/{id}', function (string $id) {
    // ...
})->where('id', '[0-9]+');

 

Esta ruta solo coincidirá si {id} está formada solo por dígitos.

 

#Manejo de múltiples parámetros

 

¿Tienes más de un parámetro para manejar? Puedes encadenarlos:

 

Route::get('/user/{id}/{name}', function (string $id, string $name) {
    // ...
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);

 

Aquí le estamos diciendo:

 

  • id debe ser solo números
  • name debe ser solor letras minúsculas

 

Ejemplo práctico: URL de publicaciones de blog

 

Supongamos que estás creando un blog con URL atractivas. Puedes configurarlo de la siguiente manera:

 

use AppHttpControllersBlogController;

Route::get('/blog/{year}/{month}/{slug}', [BlogController::class, 'show'])
    ->where([
        'year' => 'd{4}',
        'month' => '0[1-9]|1[0-2]',
        'slug' => '[a-z0-9-]+'
    ]);

 

En este ejemplo:

 

  • El año debe tener exactamente 4 dígitos
  • El mes debe ser del 01 al 12
  • El slug puede contener letras minúsculas, números y guiones


Esto garantiza que las URL como /blog/2023/05/my-awesome-post funcionen, pero /blog/not-a-year/13/oops! no coincida.

 

Al usar el método where, no solo estás escribiendo rutas, sino que estás creando una estructura de URL sólida y autovalidada para tu aplicación. ¡Es una técnica simple que puede ahorrarte dolores de cabeza en el futuro!

Antonio Jenaro
Antonio Jenaro

Web Developer

Fuente: Harris Raftopoulos

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión