我正在尝试用laravel-uuid包生成一个UUID(不是作为主键,只是生成一个)。文档非常简单,所以根据自述文件,应该通过调用$uuid = Uuid::generate();
生成一个UUID,但它返回一个空对象。(我也尝试了$uuid = Uuid::generate(1);
)
我按照那里提供的安装说明(没有什么不寻常的),应用程序没有抛出任何错误,所以我猜一切都是正确的。
也欢迎提供替代方案。
我正在尝试用laravel-uuid包生成一个UUID(不是作为主键,只是生成一个)。文档非常简单,所以根据自述文件,应该通过调用$uuid = Uuid::generate();
生成一个UUID,但它返回一个空对象。(我也尝试了$uuid = Uuid::generate(1);
)
我按照那里提供的安装说明(没有什么不寻常的),应用程序没有抛出任何错误,所以我猜一切都是正确的。
也欢迎提供替代方案。
9条答案
按热度按时间smtd7mpg1#
在laravel 5.6之后,添加了一个新的帮助程序来生成通用唯一标识符(UUID)
这些方法返回
Ramsey\Uuid\Uuid
对象orderedUuid()
方法将首先生成时间戳UUID,以便更轻松、更高效地建立数据库索引。aemubtdh2#
在Laravel 5.6+中
mfpqipee3#
结果我不得不使用
$uuid->string
来获得实际的ID,如果你试图在json响应中返回它,整个对象显示为空。tquggr8v4#
$uuid
可能是空的,因为您的系统没有提供正确的熵。您可以尝试以下v4或v5 UUID的库实现:8zzbczxx5#
1.在表名为'UUID',类型为'char'长度为36中添加列
1.在Models文件夹中创建名为“Traits”文件夹
1.在Traits文件夹中创建文件名Uuid.php
Uuid.php
1.在模型中添加“使用Uuid”
rbl8hiat6#
尝试使用这个包将自动生成和分配UUID字段到你的模型中,也可以通过UUID键显示和更新。
https://github.com/EmadAdly/laravel-uuid
yqhsw0fo7#
对于laravel〈5.6
使用
DB::raw('uuid()');
请看下面例子
内模
优点
--如果您使用laravel〈5.6,则不必使用任何第三方插件来获取UUID
缺点
使用ORM保存数据后,您需要再次查询以获取最后插入的id,否则您将获得uuid()。
htzpubme8#
对于Laravel 9,您可以使用
zengzsys9#
在laravel 9中
为主键id laravel 9模型导入
然后在你的课上