ratno/laravel-eloquent-uuid

为你的 Eloquent 模型提供 UUID 支持的简单解决方案。由 astrotomic 分支更新,支持 L10

1.6.1 2023-03-26 09:58 UTC

This package is auto-updated.

Last update: 2024-09-26 13:30:44 UTC


README

Latest Version MIT License Offset Earth Larabelles

GitHub Workflow Status StyleCI Total Downloads

为你的 Eloquent 模型提供 UUID 支持的简单解决方案。

安装

你可以通过 composer 安装此包

composer require astrotomic/laravel-eloquent-uuid

用法

你可以使用提供的 UsesUUID 特性来添加一个 UUID 属性,除了你的常规主键外,或者用它作为主键。

模型

这将添加一个 uuid 属性,并在创建模型之前自动填充它。

use Illuminate\Database\Eloquent\Model;
use App\Models\Concerns\UsesUUID;

class Post extends Model
{
    use UsesUUID;
}

如果你想要自定义属性名,你可以定义一个 $uuidName 属性或覆盖 getUuidName() 方法。

use Illuminate\Database\Eloquent\Model;
use App\Models\Concerns\UsesUUID;

class Post extends Model
{
    use UsesUUID;

    protected $uuidName = 'token';
}

当然,你也可以使用这个特性来定义你的模型主键。

use Illuminate\Database\Eloquent\Model;
use App\Models\Concerns\UsesUUID;

class Post extends Model
{
    use UsesUUID;

    public $incrementing = false;

    protected $keyType = 'string';

    public function getUuidName(): string
    {
        return $this->getKeyName();
    }
}

迁移

Laravel 在 Blueprint 类的表格上提供了 uuid() 列类型。

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;

Schema::create('posts', function (Blueprint $table) {
    // ...
    $table->uuid('uuid')->unique();
    // ...
});

测试

composer test

更新日志

请参阅 更新日志 了解最近的变化。

贡献

请参阅 贡献指南 获取详细信息。你也可以查看 行为准则

安全

如果你发现任何安全问题,请参阅 安全 了解如何报告。

致谢

替代方案

许可

MIT 许可证 (MIT)。请参阅 许可文件 获取更多信息。

开源

你可以自由使用此包,但如果它进入你的生产环境,我将非常感激你为世界买一棵树。

众所周知,应对气候危机并防止气温上升超过 1.5C 的最佳工具之一是 种树。如果你为我的森林做出贡献,你将为当地家庭创造就业机会并恢复野生动物栖息地。

你可以在 offset.earth/treeware 购买树木。

treeware.earth 上了解更多关于 Treeware 的信息。