【发布时间】:2020-08-23 15:38:34
【问题描述】:
通过使用视图作曲家传递变量,我得到了这样的错误:
“试图获取非对象的属性 'sub_cat_name'(查看:D:\xampp\htdocs\E-commerce\resources\views\layouts\includes\top.blade.php)”。请解决问题,代码如下:
AppServiceProvider:
View::composer(['layouts.includes.top'], function ($view) {
$view->with('subcat', SubCategory::get());
});
控制器:
public function prdtview()
{
$categories = Category::get();
$data=DB::select('select category.cat_name,product_images.prdt_image,product.prdt_name,product.actual_price from product INNER JOIN category on product.catid = category.id INNER JOIN product_images on product.id = product_images.prdt_id where product.sub_cat_id = 3 ');
return view("frontend.product",[
'data' => $data,
'category' =>$categories
]);
}
刀片文件:
<div class="nav-item">
<div class="container">
<nav class="nav-menu mobile-menu">
<ul>
<li class="active"><a href="">Home</a></li>
@foreach($category as $category)
<li><a href="#">{{$category->cat_name}}</a>
<ul class="dropdown">
@foreach($subcat as $subcat)
<li><a href="#"><?php echo $subcat->sub_cat_name; ?></a></li>
@endforeach
</ul>
</li>
@endforeach
</ul>
</nav>
<div id="mobile-menu-wrap"></div>
</div>
</div>
【问题讨论】:
-
发布您的类别模型定义
-
最好保持要迭代的实体与其每个组件不同,您可以使用复数,例如 foreach($categories as $category)
-
类类别扩展模型{使用SoftDeletes;受保护的 $table = '类别';受保护的 $primaryKey = 'id';公共 $timestamps = true;受保护的 $dates = ['deleted_at']; }
-
在你的控制器中显示 dd($categories->toArray());
-
@bhucho 同样的错误..