Как я могу вставить несколько входов, используя сводную таблицу в laravel? - PullRequest
0 голосов
/ 02 марта 2020

У меня есть 3 таблицы:

  • станций (идентификатор, имя станции)
  • продуктов (идентификатор, имя продукта)
  • product_station (station_id , product_id)

enter image description here

Я уже вставил станции и продукты и хочу вставить несколько продуктов на выбранную станцию, используя сводную таблицу

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');
}

1 Ответ

0 голосов
/ 03 марта 2020

Я решил эту проблему с помощью кода ниже

public function update(Request $request, $id)
    {
        $station = Station::findOrFail($id);

        $station->products()->syncWithoutDetaching($request->input('product_name'));

        $station->update($request->all());

        return redirect('/admin/stations');
    }

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...