Laravel отправляет данные из одной модели в другую внутри foreach - PullRequest
0 голосов
/ 10 мая 2019

Мне нужно отправить данные (price) в моем примере в представление, но внутри foreach.В моем проекте у меня есть данные продукта (title, img и т. Д.) В одной таблице из базы данных.

Но у каждого продукта есть много вариантов, и я помещаю варианты в другую таблицу.В view у меня есть foreach, который зацикливает на меня 12 продуктов.

Мне нужно поместить price внутри каждого product.

Проблема заключается в определенииу каждого продукта id в моем контроллере.

products.blade.php:

    @foreach($products as $product) 

    <div> {{ here I need to put the price }} </div>

    <div> {{ $product->slug }} </div>

    @endforeach

ProductsController.php:

    // all prices for my variants
    $variants_prices = Variants
                           ::where('product_slug', '=', $slug)
                           ->get('attribute_price');

    // minimum price
    $min_price = $variants_prices
                     ->where('attribute_price', $variants_prices->min('attribute_price'))
                     ->first();

    // take value of minimum price from all variants
    $pdt_min_price = $min_price->attribute_price;

    return view('products.index')
               ->with('pdt_min_price', $pdt_min_price);

Мне нужно что-то подобное в моем blade файле:

enter image description here

Я буду очень рад, если кто-нибудь мне поможетчтобы решить эту проблему.

1 Ответ

0 голосов
/ 10 мая 2019

Вы можете определить отношение в вашей модели между Product и Variant

в вашей Product модели:

function variant()
{
  return $this->hasMany('App\Variant', 'foreign_key');
}

тогда вы можете получить вариант, используя:

$products = Product::with(['variant'])->get();

тогда в цикле вы можете получить доступ к варианту, используя его ключ:

{{ $product->variant[$key]['price'] }}
...