Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试获取非对象属性的FAQ视图的Laravel嵌套Foreach_Laravel_Foreach_Nested - Fatal编程技术网

尝试获取非对象属性的FAQ视图的Laravel嵌套Foreach

尝试获取非对象属性的FAQ视图的Laravel嵌套Foreach,laravel,foreach,nested,Laravel,Foreach,Nested,我的常见问题解答视图有问题。我想按以下类别显示常见问题: 类别1 常见问题1 常见问题2 常见问题3 类别2 常见问题1 常见问题2 常见问题3 这是我的控制器 public function faq() { $faq_category_vendor = DB::table('faq_categories')->where('categories_for','1')->get(); $faq_vendor = DB::table('fa

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

类别1

  • 常见问题1

  • 常见问题2

  • 常见问题3

类别2

  • 常见问题1

  • 常见问题2

  • 常见问题3

这是我的控制器

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

有人能帮我吗?

检查您的faq\u类别是否在faq中有id,因为如果没有id,您将获得空加入,因此尝试获取

$item2->category
将抛出异常。我的建议是在。blade中执行类似的操作

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

这将在blade中为您提供dd,这样您将看到所有记录是否都有联接,因此这里有几点可以帮助您解决问题

您的控制器意味着您没有建立关系。在数据之间建立关系将极大地帮助您解决问题;据我所知,faq\u类别和faq之间存在一对多的关系(一个faq\u类别有许多faq)

因此,在您的FAQ类别模型中:

public function faqs()
{
    return $this->hasMany('app\faq');
}
在常见问题解答模型中:

public function category()
{
    return $this->belongsTo('app\faq_category`);
}
好的,你说你要显示每个类别,然后显示每个类别下的每个FAQ。在控制器中,您可以获得如下所有类别:

$categories=FaqCategory::all()

在刀片中,您可以执行以下操作:

@foreach($categories as $category)
    @foreach($category->faqs as $faq)
         {{ $faq }}
    @endforeach
@enforeach

您是否尝试过在视图中使用
$item['category']
?第1行、第2行或第4行?在控制器函数
faq()
中,将其放在
return
语句
dd(faq\u category\u vendor)
之前。然后用
dd
@Alex$item2['category']否的输出更新您的问题?但是,为什么它应该是一个数组。@aboubaidillah您注意到数组中没有名为
category
的键吗?您正在尝试访问
$item2->category
。这就是为什么你会出错的原因。太好了,这对我来说很有效,是什么
@foreach($categories as $category)
    @foreach($category->faqs as $faq)
         {{ $faq }}
    @endforeach
@enforeach