
String IDs personalizados en modelos de Laravel: un nuevo enfoque
- Publicado el 15 enero, 2025
- Palabras: 42
¿Necesitas utilizar identificadores únicos personalizados en tus modelos de Laravel? El trait HasUniqueStringIds refactorizado proporciona una forma clara de implementar identificadores de cadena personalizados sin anular las consultas de enlace de ruta.

#Uso básico
Creat tu trait de id personalizado:
trait HasTwrnsTrait
{
use HasUniqueStringIds;
public function newUniqueId()
{
return (string) Twrn::new();
}
protected function isValidUniqueId($value): bool
{
return Twrn::isValid($value);
}
}
#Ejemplo práctico
A continuación se explica cómo implementar identificadores personalizados en tu aplicación:
class CustomIdentifierService
{
public static function generate(): string
{
return 'PRD-' . strtoupper(uniqid()) . '-' . rand(1000, 9999);
}
public static function isValid(string $value): bool
{
return preg_match('/^PRD-[A-Z0-9]+-d{4}$/', $value);
}
}
trait HasCustomIdentifier
{
use HasUniqueStringIds;
public function newUniqueId(): string
{
return CustomIdentifierService::generate();
}
protected function isValidUniqueId($value): bool
{
return CustomIdentifierService::isValid($value);
}
}
class Product extends Model
{
use HasCustomIdentifier;
protected $keyType = 'string';
public $incrementing = false;
}
// Uso en routes
Route::get('/products/{product}', function (Product $product) {
return $product;
});
// La URL del producto se mostrará como:
// /products/PRD-5F9E2B3A-1234
El trait HasUniqueStringIds facilita la implementación de identificadores de cadenas personalizados mientras se mantiene el elegante enlace del modelo de ruta de Laravel.
Fuente: Harris Raftopoulos
Artículos relacionados
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión