3

私のコントローラーには次のものがあります。

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

何が問題なのですか?

4

1 に答える 1

0

あなたの質問によると、関係を持つ2つのテーブルを結合しました。categoriesテーブルからデータをフェッチすると、データが返さcategoriesproductます。

あなたが指定したリンク: http://pastebin.com/U3FAtcsKに従って、$data変数にはこのタイプの階層が含まれています。

category 
  subcategories
    products
      prices
      image

image配列のデータを表示しようとしています。

imageこのようなデータを取得する必要があります。

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

配列階層を理解します。あなたは何も間違っていませんでした。:)

于 2016-09-14T05:46:01.527 に答える