我正在尝试为关系运行一个伪造的工厂,但该字段始终返回 NULL。如何在不访问数据库的情况下伪造模型关系?
我有一个与父事件表一对一关系的地图工厂。我需要伪造这种关系以进行单元测试:
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'event' => 'faker.' . join('_', $this->faker->words),
'category' => $this->faker->word,
'sub_category' => $this->faker->word,
'priority' => $this->faker->randomElement(['normal', 'high']),
'event' => Event::factory()->makeOne(),
];
}
这会从调试器返回一个假模型,但event
为空:
result = {array} [5]
event = "faker.eum_voluptatibus_aut"
category = "libero"
sub_category = "aut"
priority = "high"
event = null
我尝试使用状态,但同样的事情发生了:
public function disabled()
{
return $this->state([
'event' => Event::factory()->makeOne(['enabled' => false]),
]);
}
该对象返回一个空event
值。我需要一个可以横向进入的伪造对象:if ($object->event->enabled) [...]
. 如何生成假模型关系?