Laravel Relationship工作,但显示它 - >试图获得非对象的属性

时间:2016-09-13 12:48:55

标签: php laravel relationship object-property

在我的控制器中我有:

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

那里有什么问题?

1 个答案:

答案 0 :(得分:0)

根据你的问题,你加入了两张关系表。从categories表中获取数据时,它将返回categoriesproduct个数据。

根据您给定的链接:http://pastebin.com/U3FAtcsK,您的$data变量包含此类型的层次结构。

category 
  subcategories
    products
      prices
      image

您正在尝试显示image数组的数据。

你必须像这样获取image数据。

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

了解您的数组层次结构。你没有错。 :)