Laravel Factory-> each()添加迭代器

时间:2018-09-11 08:45:44

标签: laravel laravel-seeding

我有一家工厂:

    factory(Survey::class, 3)->create()->each(function ($survey)
    {
        factory(Question::class, 1)
            ->create()
            ->each(function ($question)
            {   
                factory(Option::class, rand(2,3))->create();
            });
    });

问题是-我需要为每个选项添加一个index。应该是1,2,3 ... 如何将迭代器添加到-> each()函数? 我试图在循环体内添加变量,但是在for / foreach中不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果我对你的问题正确。

每个方法都会迭代集合中的项目,并将每个项目传递给回调。如果要在每个参数上添加第二个参数,它将是当前元素的索引,以后可以在其中使用。

$collection->each(function ($item, $key) {
    //
});

https://laravel.com/docs/5.7/collections#method-each