我使用下面的代码创建了20篇文章,每篇文章有3条评论。
Post::factory()
->times(20)
->has(Comment::factory()->times(3))
->create()
相反,我想创建20个帖子,每个帖子都有随机数量的评论(例如:帖子1有2条评论,帖子2有4条评论,等等)
这不起作用,每个帖子都有相同的(随机)评论数。
Post::factory()
->times(20)
->has(Comment::factory()->times(rand(1, 5)))
->create()
我如何才能做到这一点?
3条答案
按热度按时间ejk8hzay1#
据我所知,如果你使用的是
->times
,那么每个模型不可能有一个动态的相关模型数。您可以尝试:这应该会创建20个帖子,每个帖子上都有随机数量的评论。它可能会慢一点,但可能不会太多
t3irkdon2#
我会用工厂的方法来做这件事。向
Post
工厂添加一个方法,如下所示:然后在测试中,你可以简单地这样调用它:
rbl8hiat3#
**更新:**应该工作:灵感来自于apokryfos。如果这不起作用,那将: