首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Str::uuid()生成相同的字符串- Laravel

Str::uuid()生成相同的字符串- Laravel
EN

Stack Overflow用户
提问于 2022-10-08 11:18:09
回答 1查看 70关注 0票数 0

在我的Laravel应用程序中,我试图在数据库表中使用uuid作为主键,并使用Str助手为每一行生成一个新的uuid。

代码语言:javascript
复制
$table->uuid('id')->primary()->default(Str::uuid());

它适用于第一行,但是如果我尝试添加另一行,它会生成相同的字符串,因此它会抛出违反完整性约束的

我在控制器中的代码:

代码语言:javascript
复制
public function create(Request $request) {
    $category = new category();
    $category->name = $request->input('name');
    $category->description = $request->input('description');
    $category->save();
    return redirect()->route('categoriesToAdmin');
}

有什么解决办法吗?

您推荐我使用什么作为PK;UUID还是递增的数字?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-08 11:31:24

在这段代码中,您实际上要做的是将默认的UUID设置为字符串UUID,这在每一行中都是相同的。

您可能要做的是在UUID函数中使用MySql的构建,它将在MySQL8中工作

代码语言:javascript
复制
$table->uuid('id')->primary()->default(DB::raw('(UUID())'));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73996552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档