问题描述
试图将变量从DatabaseSeeder传递到Laravel 8中的工厂;有新语法吗? 我需要通过foreach遍历我的用户。我看到了很多将变量作为数组传递给工厂的示例
// DatabaseSeeder.PHP
foreach ($users as $user) {
$round = Round::factory()->create(['user' => $user,]);
}
我也看到了这个:
$round = Round::factory()->create($user);
这些例子大多数都已经有好几年了,但其中一个是19年9月。但是,这两种方法都不适合我。我得到:
// Terminal: PHP artisan db:seed
Illuminate\Foundation\Bootstrap\HandleExceptions::handleError("Undefined variable: user",…
我的foreach循环肯定会产生有效的$ user(通过dd($ user)确认)。我的工厂定义看起来像这样:
// RoundFactory.PHP
return [
'user_id' => $user,'other_field' => $this->faker-> …something,other fields …
]
那么还有其他方法可以做到这一点吗?谢谢。