我有一个模型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()
似乎是错误的
发布于 2016-09-09 16:42:13
有一种简单的方法可以做到这一点。只需使用子类别的计数来确定。
示例:
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
希望这能有所帮助:)
https://stackoverflow.com/questions/39407201
复制相似问题