پوریا مستعان
3 سال پیش توسط پوریا مستعان مطرح شد
5 پاسخ

دسته بندی های نامحدود و نمایش آن ها در منو مانند دیجی کالا

سلام خدمت همه دوستان
من دسته بندی هام به صورتیه که نامحدوده و هر دسته و زیردسته هاش میتونن چندین تا زیردسته و دسته دیگه داشته باشند.
حالا برای نمایش اینها خب روشش جوری که من میدونم به این صورته که از تابع بازگشتی استفاده کرد، یعنی تو خود view با @include دوباره view رو برگردونی، منتها هرکار میکنم تو مگا منو ها، مثل منو دیجی کالا که اتفاقا منو من هم به این صورته اصلا به صورت درست نمایش نمیده، حالا من کد هارو این پایین قرار میدم و اگر تونستین راهنماییم کنید، پیشاپیش تشکر می کنم.

کد های بخش هدر مربوط به منو

<nav class="main-menu">
        <ul class="new-list-menu">
            <li class="item-list-menu megamenu-1 category">
                <a href="#" class="list-category first after"
                   style="font-weight: bold;">
                    <i class="fa fa-navicon"></i>
                    دسته بندی کالاها
                </a>

                <ul class="list-menu-level-2">
                    @foreach($categories as $category)
                        <li class="item-menu-2">
                            <a href="#" class="list-category-menu-2">
                                <i class="fa fa-desktop"></i>
                                {{ $category->name }}
                            </a>
                            @include('layouts.categories-group',['categories' => $category])
                        </li>
                    @endforeach
                </ul>

            </li>
        </ul>
    </nav>

همونطور که میبینید با یه foreach دسته بندی هارو از Controller میحونه و میاره، البته دسته های اصلی فقط که parent_id برابر با صفر دارند.
حالا کد های بعدی مربوط به @include کد های بالاست
کد های صفحه category

@if($category->child->count())
    <ul class="megamenu-level-3" style="display:block;">
        @foreach($category->child as $category)
            <div class="menu-level-3">
                <li class="item-megamenu-3">
                    <a href="#" class="list-category-megamenu-3">
                        <span>{{ $category->name }}<i
                                class="fa fa-angle-left"></i></span>
                    </a>
                </li>
            </div>
            @include('layouts.categories-group',['categories' => $category->child])
        @endforeach
    </ul>
@endif

همونطور که میبینید اول برسی میکنه که آیا زیردسته داره یا نه، اگر داشت دوباره وارد حلقه foreach میشه و دوباره @include


ثبت پرسش جدید
بهزاد عزیزان
@behzad.azizan 3 سال پیش مطرح شد
0

سلام
فایل categories-group رو نیاوردید و نمیشه مشکل رو پیدا کرد


پوریا مستعان
تخصص : Full-Stack Developer
@pooriya.mostaan 3 سال پیش مطرح شد
0

@behzad.azizan
اون تیکه ای که نوشتم کد های صفحه category منظور همون کد های صفحه categories-group هست
دوباره میذارم اینجا :

@if($category->child->count())
    <ul class="megamenu-level-3" style="display:block;">
        @foreach($category->child as $category)
            <div class="menu-level-3">
                <li class="item-megamenu-3">
                    <a href="#" class="list-category-megamenu-3">
                        <span>{{ $category->name }}<i
                                class="fa fa-angle-left"></i></span>
                    </a>
                </li>
            </div>
            @include('layouts.categories-group',['categories' => $category->child])
        @endforeach
    </ul>
@endif

بهزاد عزیزان
@behzad.azizan 3 سال پیش مطرح شد
0

شما متغری به اسم categories رو به صفحه ارسال کردید و داخل صفحه با اسم $category میخواید بهش دسترسی داشته باشید


پوریا مستعان
تخصص : Full-Stack Developer
@pooriya.mostaan 3 سال پیش مطرح شد
0

@behzad.azizan
دسترسی ها درسته دوست عزیز، همه دسته ها و زیر دسته ها رو درست بر میگردونه، منتها استایل به هم میریزه، من میخوام بدونم چجوری باید این foreach و @include هارو قرار بدم تا استایل ها به هم نریزه و به درستی نمایش بده


بهزاد عزیزان
@behzad.azizan 3 سال پیش مطرح شد
0

نمیدونم باید بیشتر بررسی بشه کدتون اما شاید ب خاطر این باشه که داخل تگ ul تگ div گذاشتین
توی تگ ul باید فقط li باشه.
اینو اصلاح کنید احتمالا حل میشه مشکلتون


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام