Php 有没有办法为Laravel 5.8创建自定义UUID前缀?

Php 有没有办法为Laravel 5.8创建自定义UUID前缀?,php,laravel,laravel-5,Php,Laravel,Laravel 5,我想在Laravel中为UUID添加一个自定义前缀,以帮助更好地跟踪数据库条目。当前,当调用uuid()时;函数将生成如下表项: 6ab4a8c-9597-lle7-a63c-0242c100426l 但我希望能够在该表中的每个uuid条目前面添加前缀。例如,Users表中的用户的uuid前缀为uuid: 和POST将以PUID前缀保存在Posts表中: 表示('Post'唯一标识符) Users表的默认迁移如下所示: Schema::create('users', function (Bl

我想在Laravel中为UUID添加一个自定义前缀,以帮助更好地跟踪数据库条目。当前,当调用uuid()时;函数将生成如下表项:

6ab4a8c-9597-lle7-a63c-0242c100426l
但我希望能够在该表中的每个uuid条目前面添加前缀。例如,Users表中的用户的uuid前缀为uuid:

和POST将以PUID前缀保存在Posts表中:

表示('Post'唯一标识符)


Users表的默认迁移如下所示:

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列

在您的
用户
型号中:

public function getUuidAttribute($value)
{
    return "UUID-".$value;
}

public function setUuidAttribute($value)
{
    $this->attributes['uuid'] = str_replace("UUID-", "", $value);
}
在您的
帖子中
模型:

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
,前缀为
puid-
$post->puid
也会出现同样的情况


否则,您应该自己生成UUID,并将其保存为数据库中的字符串。

即使数据库中有UUID列,据我所知,Laravel也不会自动填写。这意味着你(或你安装的软件包)要对此负责。你想解决什么问题?似乎应该有比搞乱UUID生成更好的解决方案。
public function getUuidAttribute($value)
{
    return "UUID-".$value;
}

public function setUuidAttribute($value)
{
    $this->attributes['uuid'] = str_replace("UUID-", "", $value);
}
public function getPuidAttribute($value)
{
    return "PUID-".$value;
}

public function setPuidAttribute($value)
{
    $this->attributes['puid'] = str_replace("PUID-", "", $value);
}