我有这样的工厂定义:
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。我该如何解决?