Laravel Relationship работает, но показывает это — & gt; Попытка получить свойство не объекта

В моем контроллере у меня есть:

public function showMainPage()
{
$categories = Category::with('subcategories.products.prices', 'subcategories.products.image')->get();

$data = array(
"categories" => $categories,
);

return view('index')->with($data);
}

Когда я ссылаюсь на это, на мой взгляд, так:

@foreach($subcategory->products as $product)
<img src="{{ $product->image->thumbnail }}" alt="">

Я получаю Trying to get property of non-object ошибка.

Это мои отношения:

product.php

public function image()
{
return $this->belongsTo('App\ProductImage');
}

Это мое отношение ProductImage:

public function product()
{
return $this->belongsTo('App\Product');
}

Что там не так?

3

Решение

По вашему вопросу, вы присоединились к двум таблицам с отношениями. Когда вы выбираете данные из categories стол вернется categories а также product данные.

По данной ссылке вы: http://pastebin.com/U3FAtcsK, ваш $data переменная содержит этот тип иерархии.

category
subcategories
products
prices
image

вы пытаетесь отобразить данные image массив.

ты должен принести image данные как это.

$categories->subcategories->product->image->thumbnail

Поймите свою иерархию массивов. Вы не сделали ничего плохого. 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]