Laravel 包根据 RFC 4122 标准生成并验证通用唯一标识符 (UUID)。内置对版本 1、3、4 和 5 UUID 的支持。
Laravel-uuid 现已为 Laravel 8 做好准备。它具有相同的要求,因此意味着 PHP 7.3 或 PHP 8。Laravel 包自动发现已启用,您现在可以使用 UUID 验证。验证示例如下和测试中。
对于旧的 Laravel 或 PHP 版本,请使用旧版本;见下文...
Laravel-uuid 现已针对 Laravel 5.5 进行了重构。它具有相同的要求,因此这意味着 PHP 7.Laravel 包自动发现已启用,您现在可以使用 UUID 验证。验证示例如下和测试中。
Laravel 5.0、5.1、5.2、5.3 和 5.4?使用版本2
Laravel 4.*?使用版本1
在 Laravel 5.5 中,laravel-uuid 将通过新的包发现功能安装,因此您只需将包添加到您的composer.json文件中
作曲家需要“webpatser/laravel-uuid:^3.0”
安装后你应该看到
发现包:webpatser/laravel-uuid
你已经准备好出发了
要快速生成 UUID,只需执行以下操作
Uuid::生成()
这将生成一个带有随机生成的 MAC 地址的版本 1 Uuid object
。
要回显生成的 UUID,请将其转换为字符串
(字符串)Uuid::generate()
或者
Uuid::generate()->字符串
生成版本 1、基于时间的 UUID。您可以将可选节点设置为 MAC 地址。如果未提供,它将生成一个随机 MAC 地址。
Uuid::生成(1,'00:11:22:33:44:55');
使用 MD5 哈希、UUID 生成基于名称的版本 3
Uuid::生成(3,'测试', Uuid::NS_DNS);
生成版本 4、真正随机的 UUID
Uuid::生成(4);
使用 SHA-1 哈希、UUID 生成基于名称的版本 5
Uuid::生成(5,'测试', Uuid::NS_DNS);
导入 UUID
$uuid = Uuid::import('d3d29d70-1d25-11e3-8591-034165a3a613');
提取基于时间的 UUID 的时间(版本 1)
$uuid = Uuid::generate(1);dd($uuid->时间);
提取 UUID 的版本
$uuid = Uuid::generate(4);dd($uuid->版本);
如果您希望在 Laravel 模型中神奇地生成 UUID,只需将此引导方法添加到您的模型中即可。
/** * 设置模型事件挂钩 */public static function boot() {parent::boot();self::creating(function ($model) {$model->uuid = (string) Uuid::generate(4); }); }
这将在创建新记录时生成版本 4 UUID。
如果您想在 URL 中使用 UUID 而不是主键,您可以将其添加到您的模型中(其中“uuid”是存储 UUID 的列名称)
/** * 获取模型的路由键。 * * @return string */public function getRouteKeyName() {返回'uuid'; }
当您将模型注入资源控制器方法时,您将获得正确的记录
公共函数编辑(模型$模型) { return view('someview.edit')->with(['model' => $model, ]); }
就像任何其他 Laravel 验证器一样使用。
'uuid-field' => 'uuid'
或者从头开始创建一个验证器。在示例中,已验证 Uuid 对象。您还可以验证字符串$uuid->string
、 URN $uuid->urn
或二进制值$uuid->bytes
$uuid = Uuid::generate();$validator = Validator::make(['uuid' => $uuid], ['uuid' => 'uuid']);dd($validator->passes()) ;
有关 UUID 规范的完整详细信息,请访问 http://tools.ietf.org/html/rfc4122。