ratno / laravel-eloquent-uuid
为你的 Eloquent 模型提供 UUID 支持的简单解决方案。由 astrotomic 分支更新,支持 L10
1.6.1
2023-03-26 09:58 UTC
Requires
- illuminate/database: ^10.4
- ramsey/uuid: ^4.7
Requires (Dev)
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
README
为你的 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 的信息。