Personaliza tus URLs en Laravel

¿Qué es getRouteKeyName()?

En Laravel, el método getRouteKeyName() permite especificar qué columna de tu modelo se utilizará para la vinculación implícita de rutas. Por defecto, Laravel utiliza la columna id, pero puedes sobrescribir este comportamiento para usar otra columna, como slug.

¿Cómo implementarlo?

public function getRouteKeyName(): string
{
    return 'slug';
}

Para usar un campo diferente al id en tus URLs, agrega el siguiente método en tu modelo Eloquent:

Con esta configuración, una URL como /posts/mi-articulo buscará el registro con el slug igual a mi-articulo. Si no se encuentra, Laravel devolverá automáticamente un error 404.

¿Por qué usarlo?

  • URLs amigables: Mejora la legibilidad y el SEO de tus rutas.

  • Mejor experiencia de usuario: URLs más descriptivas y fáciles de recordar.

  • Flexibilidad: Permite utilizar cualquier columna única de tu modelo para la vinculación de rutas.

Consideraciones

  • Asegúrate de que el campo que elijas (como slug) sea único y adecuado para ser utilizado en una URL.

  • Si estás utilizando Laravel 7 o superior, también puedes especificar el campo directamente en la ruta con la sintaxis {model:slug}.

 

 

Personaliza tus URLs en Laravel Categoría: Laravel Estado: Published Fecha de publicación: 06-05-2025 Autor: Jc So Extracto: Aprende a usar el método "getRouteKeyName()" en Laravel para reemplazar el ID por un campo como slug en las rutas, mejorando la legibilidad y el SEO de tu aplicación. Etiquetas: #Laravel #SEO