我有一个模型Category
和一个模型Subcategory
。这些是相关的。
现在我想检查一个类别是否有子类别的视图。如果是,请运行此代码,如果不运行此代码。
我想到了像
这样的东西 @forelse($categories as $category)
@if($category->subcategory)
<li class="sub-category">
<a href="#"><img src="{{ asset('img/icon/'.$category->icon) }}" alt="{{ $category->name }}">{{ $category->name }}</a>
<ul class="sub-menu clearfix">
@foreach(isset($category->subcategory)) as $subcategory)
<li class="sub-sec col-md-6">
<ul>
<li><a href="#" class="title">{{ $subcategory->name }}</a></li>
<!--//
<li><a href="#"><i class="fa fa-angle-double-right"></i> Single Item 1</a></li>
<li><a href="#"><i class="fa fa-angle-double-right"></i> Single Item 2</a></li>
<li><a href="#"><i class="fa fa-angle-double-right"></i> Single Item 3</a></li>
<li><a href="#"><i class="fa fa-angle-double-right"></i> Single Item 4</a></li>
-->
</ul>
</li>
@endforeach
</ul>
</li>
@else
<li><a href="#"><img src="{{ asset('img/icon/'.$category->icon) }}" alt="{{ $category->name }}">{{ $category->name }}</a></li>
@endif
@empty
@endforelse
但使用isset()
似乎是错误的
答案 0 :(得分:1)
有一种简单的方法可以做到这一点。只需使用子类别的数量来确定。
示例:
if ($category->subcategory()->count() > 0)
也许你也应该改变一些变量,方法和关系的名称。它使阅读更容易。例如,您可以将子类别关系重命名为子类别,因为它将不止一个。
您的代码看起来像:
@forelse ($categories as $category)
<li>
<a href="...">{{ $category->name }}</a>
@if ($category->subcategory()->count() > 0) // Check if more than one subcategory
@foreach($category->subcategories as $subcategory) // Change $category->subcategory to $category->subcategories
...
@endforeach
@endif
</li>
@empty
No categories
@endforelse
希望这会有所帮助:)