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附加一个procurement_mode_id。
我试着用
$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,
];
});那么,最好的方法是什么呢?
发布于 2018-04-12 16:30:08
对于那些会遇到这样的问题的人。
我只是
$ids = 1; $b->procurement_modes()->sync($ids);
https://stackoverflow.com/questions/49791410
复制相似问题