ignition-nbs / laravel-uuid-model
使Laravel的Eloquent模型可以通过UUID(字符串)而非ID(递增或bigIncrement)来识别
2.0.1
2020-04-23 19:20 UTC
Requires
- ramsey/uuid: ^4.0
This package is auto-updated.
Last update: 2024-09-24 05:30:38 UTC
README
laravel-uuid-model提供了1个PHP特质,实现了初始化函数,因此被Illuminate\Database\Eloquent\Model
构造函数调用。`initializeUuidModel`将`$incrementing`设置为FALSE,`$keyType`设置为"string"
,并确保`id`属性可以被批量赋值。
然后它为`id`属性生成一个版本4的通用唯一标识符,并将其值设置为`$this->attributes['id']`。
需要注意的是,这个特质比扩展Laravel的Model
类的UUID模型类效果更好:具有中间父类(例如App\User
)的类将无法与这类UUID模型类一起工作。
此包与Laravel 5.7、5.8、6.x和7.x兼容。
安装
$ composer require ignition-nbs/laravel-uuid-model
如果您安装并使用此包,请向以下地址发送明信片
Ignition NBS Ltd
5th Floor
82 King Street
Manchester
M2 4WQ
United Kingdom
用法
为了成功使用此UuidModel
,您必须做两件事
- 在您的模型类中使用
IgnitionNbs\LaravelUuidModel\UuidModel
<?php namespace App; use IgnitionNbs\LaravelUuidModel\UuidModel; use Illuminate\Database\Eloquent\Model; class MyModel extends Model { use UuidModel; }
- 通过使用
uuid()
函数在相应的迁移中设置id
字段
class CreateMyModelsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('my_models', function (Blueprint $table) { $table->uuid('id')->primary(); }); } }
## 更新日志 请参阅更新日志以了解最近的变化。
## 贡献 欢迎提交pull请求。对于重大更改,请首先创建一个issue来讨论您想进行哪些更改。
请确保根据需要更新测试。
## 安全性 如果您发现任何安全问题,请通过电子邮件guusleeuw@ignitionnbs.co.uk而不是使用issue跟踪器。
## 致谢
## 许可证 MIT