Всем привет. Есть три таблицы: Товары (id, name), Магазины (id, name), Цены(id, price). В моделях связи
Товары
public function price()
{
return $this->belongsToMany('App\Models\Price');
}
Магазины
public function price()
{
return $this->belongsToMany('App\Models\Price');
}
Цены
public function shop()
{
return $this->belongsToMany('App\Models\Shop');
}
public function product()
{
return $this->belongsToMany('App\Models\Product');
}
Добавил 2 pivot таблицы
price-product и
price_shop
Я хочу вывести все цены для одного товара в виде
Товар
название_магазина -> цена
....
название_магазина -> цена
Для этого я делаю
$product = Product::find($id);
$prices = $product->price;
foreach($prices as $price) {
$shops[$price->id][$price->price] = $price->shop[0]->name;
}
и передаю массив $shops в wiev.
Все работает как надо. Но, слишком большое кол-во запросов к бд. Получается, сколько товаров, столько запросов. Возможно ли что-либо изменить чтоб уменьшить кол-во запросов?