Laravel检查是否存在相关记录
Laravel Check if any related records exist
我有一个模特 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()
好像是错误的
有一种简单的方法可以做到这一点。直接用子类目数来判断。
示例:
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
希望这对您有所帮助:)
我有一个模特 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()
好像是错误的
有一种简单的方法可以做到这一点。直接用子类目数来判断。
示例:
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
希望这对您有所帮助:)