jos*_*sei 5 php laravel laravel-factory
我使用以下代码创建 20 个帖子,每个帖子有 3 条评论。
Post::factory()
->times(20)
->has(Comment::factory()->times(3))
->create()
Run Code Online (Sandbox Code Playgroud)
相反,我想创建 20 个帖子,每个帖子都有随机数量的评论(例如帖子 1 有 2 条评论,帖子 2 有 4 条评论等)
这不起作用,每个帖子都有相同(随机)数量的评论。
Post::factory()
->times(20)
->has(Comment::factory()->times(rand(1, 5)))
->create()
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现这个目标?
->times
据我所知,如果您使用的是每个模型,则不可能拥有动态数量的相关模型。您可以尝试:
collect(range(0,19))
->each(function () {
Post::factory()
->has(Comment::factory()->times(rand(1,5)))
->create();
});
Run Code Online (Sandbox Code Playgroud)
这应该会一一创建 20 个帖子,每个帖子都有随机数量的评论。可能会慢一点,但可能不会慢很多