Laravel检查是否存在任何相关记录

时间:2016-09-09 08:31:59

标签: laravel view relation

我有一个模型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()似乎是错误的

1 个答案:

答案 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

希望这会有所帮助:)