У меня есть 3 таблицы:
- станций (идентификатор, имя станции)
- продуктов (идентификатор, имя продукта)
- product_station (station_id , product_id)
Я уже вставил станции и продукты и хочу вставить несколько продуктов на выбранную станцию, используя сводную таблицу
ProductStationController
public function edit($id)
{
$station = Station::findOrFail($id);
$products = Product::pluck('product_name','id')->all();
return view('admin.product_station.edit',compact('station','products'));
}
Я добавляю этот код для вставки нескольких продуктов на выбранную станцию, но он не работает
public function update(Request $request, $id)
{
$station = Station::findOrFail($id);
$products = explode(",", $request->get('products'));
$product_ids1 = [];
$product_ids2 = [];
$product_ids3 = [];
$product_ids4 = [];
foreach ($products as $product) {
$product_db = Product::where('product_name', trim($product))
->Create(['product_name' => trim($product)]);
$product_ids1[] = $product_db->id;
$product_ids2[] = $product_db->id;
$product_ids3[] = $product_db->id;
$product_ids4[] = $product_db->id;
}
$station->products()->syncWithoutDetaching($product_ids1);
$station->products()->syncWithoutDetaching($product_ids2);
$station->products()->syncWithoutDetaching($product_ids3);
$station->products()->syncWithoutDetaching($product_ids4);
$station->update($request->all());
return redirect('/admin/stations');
}