首页 > 解决方案 > 试图获取非对象的属性 [LARAVEL]

问题描述

我实际上试图在关系中获取数据,该关系本身就是与 foreach 的关系。这是我的视图代码:

 @foreach($currentCategory->products as $product)
                    <article class="card card-product-list">
                        <div class="row no-gutters">
                            <aside class="col-md-3">
                                <a href="#" class="img-wrap">
                                    @if($product->images->isEmpty())
                                        <img src="{{ asset('customers/images/not-found.jpg') }}" alt="main picture">
                                    @else
                                    <img src="{{ asset('merchants/images/products/' . $product->images->first()->image) }}">
                                    @endif
                                </a>
                            </aside> <!-- col.// -->
                            <div class="col-md-6">
                                <div class="info-main">
                                    <a href="#" class="h5 title">{{ $product->name }}</a>
                                    {{ $product->reviews->first()->note }}
                                    <div class="rating-wrap mb-3">
                                        <ul>
                                            <li style="width:80%" class="stars-active">
                                                <i class="fa fa-star"></i> <i class="fa fa-star"></i>
                                                <i class="fa fa-star"></i> <i class="fa fa-star"></i>
                                                <i class="fa fa-star"></i>
                                            </li>
                                            <li>
                                                <i class="fa fa-star"></i> <i class="fa fa-star"></i>
                                                <i class="fa fa-star"></i> <i class="fa fa-star"></i>
                                                <i class="fa fa-star"></i>
                                            </li>
                                        </ul>
                                        <div class="label-rating">7/10</div>
                                    </div> <!-- rating-wrap.// -->

                                    <p>{{ $product->description }}</p>
                                </div> <!-- info-main.// -->
                            </div> <!-- col.// -->
                            <aside class="col-sm-3">
                                <div class="info-aside">
                                    <div class="price-wrap">
                                        <span class="price h5">{{ getPrice($product->normal_price) }}</span>
                                    </div> <!-- info-price-detail // -->
                                    <br>
                                    <p>
                                            <a href="#" class="btn btn-primary btn-block pt-8">En savoir plus</a>
                                    </p>
                                </div> <!-- info-aside.// -->
                            </aside> <!-- col.// -->
                        </div> <!-- row.// -->
                    </article> <!-- card-product .// -->
                    @endforeach

这是我的控制器:

public function viewCategory($category)
    {
        $currentCategory = Category::where('slug', $category)->firstOrFail();
        $parentCategory = $currentCategory;
        if ($currentCategory->parent_id != NULL) {
            while ($parentCategory->parent_id != NULL) {
                $parentCategory = Category::where('id', $parentCategory->parent_id)->first();
            }
        }

        return view('customers.pages.categories.view', compact('currentCategory', 'parentCategory'));
    }

实际上,如果我做了$product->reviews->first(),我明白了:

  {
    "id": 1,
    "product_id": 1,
    "author": "Florian K.",
    "author_id": 1,
    "note": 3,
    "headline": "lourd",
    "review": "lourd",
    "published": 1,
    "created_at": "2020-07-08T20:42:44.000000Z",
    "updated_at": "2020-07-08T20:42:44.000000Z"
  }
]

但是当我添加->note到我的行 ( $product->reviews->first()->note) 时,我收到如下错误:

错误交响曲

我不明白为什么我会得到这个,因为我得到了第一个数组并且我得到了数组的所有元素。当我这样做时,dd($product->reviews->first()->note)我可以得到我的评论记录......

标签: phpjsonlaravel

解决方案


推荐阅读