[英]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.