public function run()
{
factory(App\ProjectProcurementManagementPlan::class, 5)->create()->each(function ($a) {
$a->paps()
->saveMany( factory(App\ProjectsProgramsActivities::class, 5)->make() )
->each(function ($b) {
$b->pap_schedules()->save(factory(App\PapSchedule::class)->make());
$b->procurement_modes()-> ????????;
});
});
}
我这里有这个代码。我想在创建上面指出的每个模型后播种数据透视表。 $b->procurement_modes()-> ????????
将成为我将工厂的东西带到数据透视表的部分。
数据透视表看起来像这样。
| id | pap_id | procurement_mode_id |
我的计划是,为了简单起见,我只需将一个采购_模式附加到每个创建的ProjectsProgramsActivities。
我尝试过使用
$b->procurement_modes()->sync(factory(App\PAPProcurementMode::class)->make());
但它给了我一个
SQLSTATE[HY000]: General error: 1366 In
correct integer value: '' for column 'procurement_mode_id' at row 1 (SQL: insert
into paps_procurement_modes (pap_i, procurement_mode_id) values (1, ))
该数据透视表的工厂是
$factory->define(App\PAPProcurementMode::class, function (Faker $faker) {
return [
'procurement_mode_id' => 1,
];
});
那么最好的方法是什么?
答案 0 :(得分:0)
对于那些会遇到这样的问题的人。
我只是
$ids = 1;
$b->procurement_modes()->sync($ids);