自己给 products 的 title 栏添加了 unique 限制,结果执行 Seeder 出错

出错后seeder被中止,查看products表,只添加了十几条数据。
如何让seeder碰到同名title无法添加的情况下跳过,继续添加至添加满30条?
虽然可以给title的起名添加随机数以减少重名率。

Long2Ge
附言 1  ·  5年前

ProductFactory.php文件在$faker->word后面添加了rand,但不知道seeder文件怎么弄。

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

'title' => $faker->unique()->word,
这样不行吗

5年前 评论
讨论数量: 6

'title' => $faker->unique()->word,
这样不行吗

5年前 评论
long2ge

不希望去掉title的unique限制。
为了防止两位管理员添加同名的product。

5年前 评论
long2ge

谢谢。
@郝合心 那又如何确保同一个产品名下的sku互不同名?
例如图中的sku有4个title为et的,但红框中的两个et的product_id是相同的。
希望随机生成的sku不要出现红框中的情况。file
不同产品的sku允许出现同名。

5年前 评论

@long2ge ProductSku 的 factory 文件也一样设置
'title' => $faker->unique()->word,
让所有的 title 都唯一

5年前 评论
long2ge

@郝合心 我是希望product的title互不同名,不同product的sku的title可以同名,但同一product的sku的title互不同名。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!