首页 > 解决方案 > 如何在 laravel7 中返回 megamenu 中的所有类别?

问题描述

我有 megamenu 喜欢这个网站。https://www.snapdeal.com/

菜单

我在类别表中定义了不同的想法。看起来像上面带有红色数字的照片。我该怎么做呢?

我已使用 AppServiceProvider 对所有页面可用,我想在导航菜单中将所有类别加载到它们自己的类别中,现在它将加载所有类别,并在最后一个类别中列出表中的所有子类别,请帮助。

AppServiceProvider.php

public function boot()
{
    view()->share('menus', Category::all());
}

header.blade.php

<li class="nav-item dropdown position-static">
    <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-bs-auto-close="outside" data-bs-toggle="dropdown" aria-expanded="false">
        <i class="fas fa-bars"></i> All Categories
    </a>
    <div class="dropdown-menu w-100 position-absolute" aria-labelledby="navbarDropdownMenuLink">
        <div class="d-flex align-items-start">
            <div class="row w-100">
                <div class="col-md-3">
                    <div class="nav flex-column nav-pills me-3" id="v-pills-tab" role="tablist" aria-orientation="vertical">
                        @foreach($menus->where('parent_id', 0) as $menu)
                        <button class="text-start nav-link {{ $loop->first ? 'active' : '' }}" id="v-pills-{{ $menu->latin }}-tab" data-bs-toggle="pill" data-bs-target="#v-pills-{{ $menu->latin }}" type="button" role="tab" aria-controls="v-pills-{{ $menu->latin }}" aria-selected="true">
                            {{ $menu->name }}</button>
                        @endforeach
                    </div>
                </div>
                <div class="col-md-9">
                    <div class="tab-content" id="v-pills-tabContent">
                        @foreach($menus->where('parent_id', 1) as $menu)
                            <div class="tab-pane fade {{ $loop->first ? 'show active' : '' }}" id="v-pills-{{ $menu->latin }}" role="tabpanel" aria-labelledby="v-pills-{{ $menu->latin }}-tab">
                                <div class="row w-100 position-absolute">
                                    <div class="col-md-3">
                                        <div class="list-group">
                                            <a href="{{ $menu->latin }}" class="list-group-item list-group-item-action">
                                                {{ $menu->name }}
                                            </a>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        @endforeach
                    </div>
                </div>
            </div>
        </div>
    </div>
</li>

分类.php

public function getChild ()
{
    return $this->hasMany(Category::class, 'parent_id', 'id');
}

public function getParent ()
{
    return $this->hasOne(Category::class, 'id', 'parent_id')->withDefault(['name' => '-']);
}

标签: phplaravelbootstrap-5

解决方案


推荐阅读