[英]Is there a way to create a custom UUID prefix for Laravel 5.8?
我想在Laravel中为UUID添加自定义前缀,以帮助更好地跟踪数据库条目。 当前,当被调用时,uuid(); 函数将产生一个表条目,如下所示:
6ab4a8c-9597-lle7-a63c-0242c100426l
但是我希望能够在该表中每个uuid条目的前面添加一个前缀。 例如,用户表中的用户将具有的UUID前缀一个UUID:
UUID-6ab4a8c-9597-lle7-a63c-0242c100426l
并且帖子将以PUID前缀保存在帖子表中:
PUID-6ab4a8c-9597-lle7-a63c-0242c100426l
来表示(“发布”唯一标识符)。
“用户”表的默认迁移如下:
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
要使用UUID,将使用以下内容:
Schema::create('users', function (Blueprint $table) {
$table->uuid('uuid')->primary();
});
我不确定定义UUID的模型存储在哪里,也不确定要修改整个模型。
理想情况下,将使用表名和前缀来定义一个uuid:
$table->uuid('puid', 'PUID')->primary();
提前致谢。
您可以使用访问器和更改器来实现前端所需的功能,但是数据库将包含UUID格式的值,因为它是UUID列。
在您的Users
模型中:
public function getUuidAttribute($value)
{
return "UUID-".$value;
}
public function setUuidAttribute($value)
{
$this->attributes['uuid'] = str_replace("UUID-", "", $value);
}
并在您的Posts
模型中:
public function getPuidAttribute($value)
{
return "PUID-".$value;
}
public function setPuidAttribute($value)
{
$this->attributes['puid'] = str_replace("PUID-", "", $value);
}
当您转储$user->uuid
,您将看到UUID-6ab4a8c-9597-lle7-a63c-0242c100426l
,并且$post->puid
带有PUID-
前缀也会发生同样的情况。
否则,您应该自己生成UUID,并将它们另存为字符串在数据库中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.