【发布时间】:2017-10-09 13:53:07
【问题描述】:
我正在尝试学习 Laravel,同时编写一些常用功能。现在我要做的是当我单击主类别链接以打开新页面并显示分配给该类别的所有子类别时。听起来很简单,但我无法显示它们。
这就是我的类别模型中的内容
public function parent()
{
return $this->belongsTo('App\Category', 'parent_id');
}
public function children()
{
return $this->hasMany('App\Category', 'parent_id');
}
在控制器中
public function categoryListing( $category_id )
{
$categories = Category::with('children')->get();
$category = Category::find($category_id);
if($category->parent_id == 0) {
$ids = Category::select('id')->where('parent_id', '!=',0)->get();
$array = array();
foreach ($ids as $id) {
$array[] = (int) $id->id;
}
} else {
$items = Item::where('category_id' ,$category_id)->paginate(5);
}
return view('category_list', compact('categories','items'));
}
这里的想法是显示主类别和该主类别的所有子类别(子类别)。 这是页面上的循环
@foreach($categories as $category)
<a href="{!!route('list',array($category->id))!!}">
<span><strong>{!!$category->title!!}</strong> ({!! $category->itemCount!!})</span>
</a>
<ul class="list-group">
@foreach($category as $subcategory)
<a href="{!!route('list',array($subcategory->id))!!}">{!!$subcategory->title!!}</a>
<span class="badge badge-primary badge-pill">{!! $subcategory->itemCount !!}</span>
</li>
@endforeach
</ul>
@endforeach
当前错误是
试图获取非对象的属性
在foreach的内部。
【问题讨论】:
-
您能否在 foreach 中尝试使用此
$subcategory['title'];和$subcategory['temCount'];。 -
它正在返回有线的东西。结果是第一个 foreach 上的所有类别和子类别。应该显示子类别的第二个 foreach 是空的
-
我知道这完全是一团糟,可能有更干净、更简单的方法来划分主类别和分配给它的子类别..