首页 > 解决方案 > Laravel 嵌套 Foreach 的常见问题视图试图获取非对象的属性

问题描述

我的常见问题解答视图有问题。我想按如下类别显示常见问题解答:

类别1

类别2

这是我的控制器

public function faq()
    {
        $faq_category_vendor = DB::table('faq_categories')->where('categories_for','1')->get();
        $faq_vendor = DB::table('faqs')
                        ->join('faq_categories', 'faq_categories.id', '=', 'faqs.category')
                        ->select('faqs.*','faq_categories.*', 'faq_categories.id as idcategory', 'faqs.id as id')
                        ->where('faq_for','1')->get();
        return view('owner.faq',['faq_category_vendor' => $faq_category_vendor,'faq_vendor' => $faq_vendor]);
    }

这是我的观点

@foreach($faq_category_vendor as $item)
                For ({{$item->name}}) :
                @foreach($faq_vendor as $item2)
                  @if ($item->id == $item2->category)
                  - {{$item2->ask}} : {{$item2->answer}}<br>
                  @else
                  @endif
                @endforeach
                <br>
              @endforeach

输出是:

Facade\Ignition\Exceptions\ViewException
Trying to get property 'category' of non-object (View: C:\xampp\htdocs\weddinc\weddinc\weddinc_beta\resources\views\owner\faq.blade.php) 

谁能帮我?

标签: laravelforeachnested

解决方案


检查您的 faq_categories 是否在 faqs 中有 id,因为如果没有,您将得到空加入,所以尝试获取

$item2->category

会抛出异常。我的建议是在 .blade 中做这样的事情

@php
 try{
   $testData=$item2->category;
 } throw (\Exception $e) {
   dd($item2);
 }
@endphp

这将为您提供刀片中的 dd ,因此您将查看所有记录是否都有连接


推荐阅读