[英]get categories which has subcategories using laravel
我正在从两个表中检索数据,这两个表是类别和子类别。
类别cat_id
包含在子类别表中作为外键。
这是我的类别模型代码:
class Category extends Model
{
protected $table = 'categories';
public function subcategories()
{
return $this->hasMany(Subcategory::class, 'categories_id');
}
}
这是我来自SubCategory模型的代码:
class Subcategory extends Model
{
protected $table = 'sub_categories';
public function category()
{
return $this->belongsTo(Category::class, 'categories_id');
}
这是我从控制器中检索数据的方式:
$treeView = Category::with(['subcategories'])->get();
这是我的.blade.php
部分的样子:
@foreach($treeView as $category)
@if($category->has('subcategories'))
<li class="treeview">
<a href="#"><i class="fa fa-link"></i> <span>{{ $category->category_name }}</span>
<i class="fa fa-angle-left pull-right"></i></a>
<ul class="treeview-menu">
@foreach($category->subcategories as $subcategory)
<li class=""><a href="#">{{$subcategory->sub_category_name}}</a></li>
@endforeach
</ul>
</li>
@else
<li><a href="#"><i class="fa fa-link"></i> <span>{{ $category->category_name }}</span></a></li>
@endif
@endforeach
如上html结构所示:如果任何类别具有子类别,则我将构造一个树形视图,否则显示没有树形视图的类别。 但是我在树状视图中获得了所有带有或不带有子类别的类别。任何人都可以建议一种方法吗?
只需将嵌套的ul包装在if中:
@if($category->subcategories->count())
<ul class="treeview-menu">
@foreach($category->subcategories as $subcategory)
<li class=""><a href="#">{{$subcategory->sub_category_name}}</a></li>
@endforeach
</ul>
@endif
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.