Чтобы устранить данную ошибку, вы должны передать красноречивый объект Bom_list.
правильный путь: $ bom_copy = $ bom-> bomList () -> save (новый Bom_list ($ data));
И вы получите последний идентификатор при вызове метода save ()
//insert the bom name first to get the new bom_id
$bom = new Bom();
$bom->cost=20;
$bom->name=$request->bom;
$bom->save();
dd($bom->id); // will get the id of bom object u inserted in db
Другим хорошим способом может быть сохранение всех собранных данных и их последующая вставка в дБ.
$bom = new Bom();
$bom->cost=20;
$bom->name=$request->bom;
$bom->save();
$bom_list_collection = collect();
foreach ($request->item as $key=> $v) {
$data = array(
'bom_id' => $bom->id,
'item_id' => $request->item[$key],
'qty' => $request->item[$key],
'unit_cost' => $request->item[$key],
'total_cost' => $request->item[$key]
);
$bom_list_collection ->push(new Bom_list($data));
}
$bom_copy = $bom->bomList()->saveMany($data);
Ссылка на ссылку: https://laravel.com/docs/5.8/eloquent-relationships#one-to-many