En Laravel, las claves primarias (PK) suelen ser enteros autoincrementales, pero en algunos casos, los UUIDs son una mejor opción. Los UUIDs aportan mayor seguridad en aplicaciones públicas y evitan problemas de colisión en bases de datos distribuidas. En esta guía, te mostraré cómo implementar UUIDs de manera centralizada usando un trait, con un ejemplo práctico que incluye las tablas users, projects, tags y la tabla pivote project_tag.
Creando la Lógica Centralizada: El Trait para UUIDs
Crea varios modelos y migraciones para hacer pruebas
Configurando las Migraciones
Las migraciones deben ajustar las claves primarias y foráneas para usar UUIDs.
Tabla users
Tabla projects
Tabla tags
Tabla pivote project_tag
Configurando los Modelos
Todos los modelos deben usar el trait HasUuid.
Modelo User
Es importante fijarse cómo hacemos uso del trait HasUuid.
Modelo Project
Es súper importante fijarse en cómo definimos las relaciones BelongsToMany, aquí aplicamos el trait HasUuid.
Modelo Tag
Creando las Factorías
Factory para Project
Factory para Tag
Generar Datos con Seeders
Seeder para la Base de Datos
Conclusión
Implementar UUIDs en Laravel con claves foráneas es sencillo y mejora tanto la seguridad como la flexibilidad de tu aplicación. La introducción de foreignUuid hace que las migraciones sean más claras y manejables. Este enfoque completo, desde migraciones hasta seeders, asegura una estructura de base de datos eficiente y escalable.
¿Te interesa aprender más sobre Laravel? Explora otros artículos en nuestro blog de Laravel o consulta nuestros cursos especializados.
Curso Laravel 12
Completo 2026
El único curso 100% actualizado que incluye Laravel 12, Livewire 3, Vue 3, React 19 e Inertia 2. Aprende con proyectos reales y las últimas funcionalidades.
star Incluido en cualquier suscripción