【发布时间】:2021-06-05 09:14:11
【问题描述】:
使用 Laravel Eloquent 工厂生成伪造数据,这对于大多数逻辑来说非常有用。我怎样才能需要将数据传递给 state 函数但仍然使用 faker?
例如,为“合同”选择一个介于“职位”设置的最低/最高工资之间的工资。
$positions = Position::factory()
->state(function() use($team) {
return ['team_id' => $team->id];
})
->count(5)
->create();
foreach($positions as $position) {
$contract = Contract::factory()
->for($position)
->state(function () use ($position) {
return [
'salary' => $this->faker->randomFloat(2, $position->salary_min, $position->salary_max),
];
})
->count(1)
->create();
}
此代码抛出错误无法访问受保护的属性伪造者。
【问题讨论】: