В моем контроллере у меня есть:
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');
}
Что там не так?
По вашему вопросу, вы присоединились к двум таблицам с отношениями. Когда вы выбираете данные из categories
стол вернется categories
а также product
данные.
По данной ссылке вы: http://pastebin.com/U3FAtcsK, ваш $data
переменная содержит этот тип иерархии.
category
subcategories
products
prices
image
вы пытаетесь отобразить данные image
массив.
ты должен принести image
данные как это.
$categories->subcategories->product->image->thumbnail
Поймите свою иерархию массивов. Вы не сделали ничего плохого. 🙂
Других решений пока нет …