在 Laravel 中,可以通过以下步骤将 bigIncrements('id')
转换为 uuid('id')
作为主键:
bigIncrements('id')
作为主键。uuid
trait 来替换默认的 incrementing
和 keyType
属性。在模型文件的顶部添加以下代码:use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
class YourModel extends Model
{
use \Illuminate\Database\Eloquent\SoftDeletes;
use \App\Traits\UsesUuid; // 添加这一行
// ...
}
UsesUuid.php
(可以根据自己的喜好选择文件名),并将以下代码添加到该文件中:<?php
namespace App\Traits;
use Illuminate\Support\Str;
trait UsesUuid
{
/**
* Boot function from Laravel.
*/
protected static function bootUsesUuid()
{
static::creating(function ($model) {
if (! $model->getKey()) {
$model->{$model->getKeyName()} = (string) Str::uuid();
}
});
}
/**
* Get the value indicating whether the IDs are incrementing.
*
* @return bool
*/
public function getIncrementing()
{
return false;
}
/**
* Get the type of the primary key.
*
* @return string
*/
public function getKeyType()
{
return 'string';
}
}
ramsey/uuid
包,可以通过 Composer 进行安装:composer require ramsey/uuid
bigIncrements
转换为 uuid
:php artisan migrate
现在,你的模型将使用 uuid
作为主键,每次创建新记录时都会自动生成一个唯一的 UUID。
这是一个将 bigIncrements('id')
转换为 uuid('id')
的方法,它可以确保主键使用 UUID 来保持唯一性。
领取专属 10元无门槛券
手把手带您无忧上云