【问题标题】:Displays categories and sub categories (Laravel Blade)显示类别和子类别 (Laravel Blade)
【发布时间】:2018-12-20 23:02:28
【问题描述】:

我的显示类别和子类别有问题,我做了这个 在我的刀刃上

       <div class="collapse navbar-collapse">
            <ul class="nav navbar-nav">
                <li class="active"><a href="{{ url('/') }}"><b class="fa fa-home"></b> Начало</a></li>
                @foreach ($categories as $cat)
                    @foreach($subcategories as $sub)

                        @if($sub->parent_id == $cat->id)
                            <li class="dropdown ">
                                <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                    {{$cat->name}} <i class="fa fa-caret-down"></i>
                                </a>
                                <ul class="dropdown-menu">
                                    <li><a href="{{ url('category/'.$sub->slug) }}">{{ $sub->name }}</a></li>
                                </ul>
                            </li>
                        @endif
                    @endforeach
                @endforeach
            </ul>
        </div>
    </div>
</nav>

只有当有一个子类别时才显示类别,我不知道为什么会发生!谁来帮帮我! (请不要差票)

这是我的变量:

    $categories = Category::where('parent_id', NULL)->get();
    $subcategories = Category::where('parent_id','!=',NULL)->get();

【问题讨论】:

    标签: php html laravel laravel-blade


    【解决方案1】:

    这里的问题是,只有在存在子类别时,您才在 foreach 循环中创建列表项。

    这个例子应该可以帮到你。

    <div class="collapse navbar-collapse">
        <ul class="nav navbar-nav">
            <li class="active"><a href="{{ url('/') }}"><b class="fa fa-home"></b> Начало</a></li>
            @foreach ($categories as $cat)
            <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                    {{$cat->name}} <i class="fa fa-caret-down"></i>
                </a>
                @foreach($subcategories as $sub)
                    @if($sub->parent_id == $cat->id)
                        <ul class="dropdown-menu">
                            <li><a href="{{ url('category/'.$sub->slug) }}">{{ $sub->name }}</a></li>
                        </ul>
                    @endif
                @endforeach
            </li>
            @endforeach
        </ul>
    </div>
    

    它未经测试,所以如果它不起作用,请告诉我。

    【讨论】:

    • 是的,它工作得很好,但它在每个类别名称上都有插入符号,我尝试删除它,但是它与子类别一起更改它,这发生了:prntscr.com/k5pz40,它属于正常类别下拉类,我不想要这个:/
    【解决方案2】:

    我稍作改动就修复了它,但现在可以使用了,谢谢@answered26

    这是我的改动

                <div class="collapse navbar-collapse">
                <ul class="nav navbar-nav">
                    <li class="active"><a href="{{ url('/') }}"><b class="fa fa-home"></b> Начало</a></li>
                    @foreach ($categories as $cat)
                        <li class="{{ $cat->children->count() > 0 ? 'dropdown' : ''}}">
                            <a href="#" class="{{ $cat->children->count() > 0 ? 'dropdown-toggle' : ''  }}" data-toggle="dropdown">
                                {{$cat->name}} {!! $cat->children->count() > 0 ? '<b class="fa fa-caret-down"></b>' : '' !!}
                            </a>
                            <ul class="dropdown-menu">
                            @foreach($subcategories as $sub)
                                @if($sub->parent_id == $cat->id)
                                        <li><a href="{{ url('category/'.$sub->slug) }}">{{ $sub->name }}</a></li>
                                @endif
                            @endforeach
                            </ul>
                         </li>
                    @endforeach
                </ul>
            </div>
        </div>
    

    【讨论】:

    • 如果这是最好的解决方案,请用绿色勾号来帮助未来的研究人员找到它。如果其他答案有帮助,请给它一个赞成票。请通过删除不必要的代码行、将单词“i”大写、删除您的请求以阻止反对票以及将代码中的选项卡保持在最低限度以减少水平滚动来清理您的问题。如果您希望避免投反对票(并有机会投赞成票),请务必准确说明您的错误/问题是什么,并解释您想要的确切输出——在问题中,而不是通过 cmets。
    猜你喜欢
    • 2016-10-12
    • 2012-10-14
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    相关资源
    最近更新 更多