【发布时间】:2021-07-11 16:41:51
【问题描述】:
我有一个这样的工厂定义:
public function definition() {
$to = $this->faker->numberBetween(1, 3);
return [
"ad_id" => $to == 1 ? Ad::all()->random()->id : null,
"delivery_id" => $to == 2 ? Delivery::all()->random()->id : null,
"group_event_id" => $to == 3 ? GroupEvent::all()->random()->id : null,
];;
}
基本上,有3个字段,但只能定义一个,如果定义了一个,其他的必须为null,工厂使用faker来决定它,但是现在,我想从播种器中设置我想要的:
MyModel::factory()->create([
"ad_id" => null,
"delivery_id" => 5,
"group_event_id" => null,
]);
但这不起作用,工厂忽略了我为其他字段传递的空参数,并为这两个空参数设置了随机 ID。我该如何解决?
【问题讨论】:
-
您的问题有点太不清楚了,请将整个工厂代码发布给您,当然要替换敏感位,按逻辑您显示的内容应该可以工作
标签: php laravel laravel-seeding laravel-factory