مدیریت دسته‌بندی‌ها

زمان قرارگیری : 29 اردیبهشت 1399
زمان این قسمت : 21:52
برای دسترسی به این دوره نیاز است بصورت نقدی این دوره را خریداری کنید و این دوره بخشی از دوره های اعضای ویژه نمیباشد

تعداد شرکت کنندگان 350 نفر
قیمت دوره 259000 تومان
وضعیت دوره در حال برگزاری
زمان کل دوره 27:04:26
تعداد قسمت‌ها 118
نوع دسترسی نقدی

در این جلسه قصد دارم بخش مدیریت بر روی دسته‌بندی‌ها و ایجاد زیردسته در پنل مدیریت ایجاد کنم و شما را با این روند آشنا سازم.

بخش اول
مقدمات
رایگان 09:10
بخش ششم
مفاهیم هسته لاراول
برای دسترسی به این دوره نیاز است بصورت نقدی این دوره را خریداری کنید و این دوره بخشی از دوره های اعضای ویژه نمیباشد

تعداد شرکت کنندگان 350 نفر
قیمت دوره 259000 تومان
وضعیت دوره در حال برگزاری
زمان کل دوره 27:04:26
تعداد قسمت‌ها 118
نوع دسترسی نقدی

آفلاین
user-avatar
مدرس دوره حسام موسوی

اول داستان، طراح گرافیک بودم و ۲ سالی به عنوان طراح مشغول بودم، بعد به برنامه‌نویسی علاقمند شدم و الان بیشتر از ۱۰ ساله که عاشق کدزنی و چالش‌های پروژه‌های مختلفم. به تدریس علاقه خاصی دارم و دوست دارم دانشی که در این راه بدست آوردم را در اختیار دیگران هم قرار بدم. 

سوالات و گفتگو‌ها

سوالات و گفتگو‌ها

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

دورهای پیشنهادی

مشاهده همه دوره ها
آموزش لاراول

آموزش لاراول

فریمورک لاراول یکی از محبوبترین و بهترین فریمورک های حال حاضر برای زبان php می باشد، آموزش لاراول راکت می‌تواند به شکل رایگان به شما لاراول را آموزش د...

آشنایی با امکانات جدید لاراول 6

آشنایی با امکانات جدید لاراول 6

لاراول ۶ به تازگی توسط تیم توسعه دهنده لاراول معرفی شده، ما قصد داریم در این دوره امکانات جدیدی که به واسطه لاراول ۶ در اختیار توسعه دهندگان قرار گرفت...

آموزش پکیج نویسی لاراول

آموزش پکیج نویسی لاراول

اگر با لاراول و پکیج ها آشنا باشید مطمئنن میدانید که پکیج ها بخش مهمی در لاراول هستند و به برنامه نویسان و توسعه دهندگان لاراول کمک میکنند تا بتوانن ب...

دسترسی رایگان برای اعضای ویژه
آشنایی با امکانات جدید لاراول 5.2

آشنایی با امکانات جدید لاراول 5.2

لاراول 5.2 بزودی به طور رسمی ارائه میشه اما نسخه develop اون چند وقتی میشه که در اختیار کاربران قرار گرفته در این دوره آموزشی سعی میکنیم که امکانات و...

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
آفلاین
user-avatar
Ar4min
1 هفته پیش

من از چانک استفاده کردم و درست نمایش میده ولی الان یه مشکلی هست
بخاطر استفاده از خاصیت style="display:block فقط دسته اول به درستی نمایش داده میشه و به سایر دسته ها وارد نمیشه .
چطور میتونم بهش بفهمونم در اولین باری که اجرا میشه بیاد

<ul class="megamenu-level-3 " style="display:block">

رو پردازش کنه از یک به بعد بیاد

<ul class="megamenu-level-3  ">

پردازش کنه ؟

آفلاین
user-avatar
حسام موسوی
1 هفته پیش

گفتم که شما با استفاده از grid و flexbox در css میتونید چنین کارهای رو انجام بدید

آفلاین
user-avatar
Ar4min
1 هفته پیش

جناب موسوی سلام ، وقت بخیر
عذر خواهی میکنم یه مشکلی داشتم خواستم اگر ممکنه راهنمایی کنید
چطور میتونم وقتی تعداد زیر دسته هام از یه تعداد بیشتر شد در سطح جدید نمایش بدم ؟

از chunk استفاده کردم نشد

 <ul class="sub-menu">
                        @php
                        $categories = \App\Category::where('parent' , 0)->get();
                        @endphp
                        @foreach($categories as $category)
                            <li class="list-item-children">
                                <a href="#" class="list-item-children-category">
                                    <img src="/theme/assets/images/menu/necklace.png">
                                    {{$category->name}}
                                </a>
                                <ul class="megamenu-level-3 " style="display:block">
                                    <a href="#" class="list-category-megamenu">همه دسته بندی های {{$category->name}}</a>
                                    <div class="level-three-menu">
                                        <li class="megamenu-list-item">
                                            @if($category->child)
                                                @foreach($category->child->chunk(2) as $row)
                                              @foreach($row as $cate)
                                                        <a href="#" class="megamenu-category">{{$cate->name}}</a>
                                                    @endforeach
                                                @endforeach
                                            @endif

                                        </li>

                                    </div>

                                    <div class="images-menu-list">
                                        <a href="#">
                                            <img src="/theme/assets/images/menu/close-up-photo-of-diamond-stud-silver-colored-eternity-ring-691046.jpg">
                                            <div class="box-shadow"></div>
                                        </a>
                                    </div>
                                </ul>
                            </li>

                        @endforeach

                    </ul>
آفلاین
user-avatar
حسام موسوی
1 هفته پیش

میتونید از خصوصیت chunck استفاده کنید اما اگر میخواید از یه تعدادی بیشتر شد در ظاهر به شکلی که میخواید در بیان پیشنهاد میکنم از grid در css استفاده بفرمایید

آفلاین
user-avatar
Ali_Gh
1 ماه پیش

سلام خوب همه جا خوب پیش رفت تا اینکه تو قسمت ادیت همون تغییر دسته پدر(همون که بگیم فرزند کدوم دستست)
رو اضاف کردید چند تا مشکل داره
1- میشه به هر دسته پرنت خودشو بدیم :| (تو قسمت ادیت)
2-یه دسته که پرنتش 0 باشه رو اگه ویرایش کنیم پرنتش تغییر میکنه(چون پرنت 0 رو که نداریم برا انتخاب و خودش یکی که همون اول هست رو انتخاب میکنه حتی اگه بهش دست نزنیم)
و خوب به یه مشکل دیگه هم که بشه گفت اینه که اگه دسته پدر رو حذف کنیم زیر دسته هاش حذف نمیشن ولی خوب نمایشم داده نمیشن چون پرنتشون 0 نیس و خوب پرنتشونم موجود نیست که بخواد زیر دسته هاشو نمایش بده

و اصلا اینکه بتونیم پرنت یه دسته رو ویرایش کنیم به نظرم نیاز نمیشه اگه تو دسته اشتباهی باشه خوب حذفش میکنیم :)

آفلاین
user-avatar
حسام موسوی
1 ماه پیش

سلام سپاس از نگاه ریزتون
قطعاا چیزی که در دوره انجام میدیم یک سری باگ هم داره که از این بابت عذرخواهی میکنم اما تا زمانی که در حالت عملی نره بعضی از باگ‌ها نمایش داده نمیشه
یکی از کارهای که دانشجوهای این دوره باید انجام بدن همین هست که شما الان یک سری باگ پیدا کردید
بهترین کاری که میتونه به یادگیری بهتر شما کمک کنه اینکه راه حل‌های برای این باگ‌ها پیدا کنید و اون راه حل‌ها رو تحلیل و پیاده سازی کنید.

آفلاین
user-avatar
حسین اخلاقی
3 هفته پیش

سلام.
من معمولا هر قسمت رو که میبینم میام دیدگاه ها رو میخونم.
این دیدگاه رو هم خوندم و سعی کردم حل کنم این مساله رو.
بخش اول در ویو ادیت بود که بنظرم کافیه همین جا و نیازی به ولیدیشن در کنترلر نبود چون بررسی کرده بودیم که دسته بندی موجود باشه، من فقط قبل foreach یه if else گذاشتم.

 <div class="form-group">
                                <label for="select" class="col-sm-2 control-label">دسته مرتبط</label>
                                <select class="form-control" name="parent" id="permissions" >
                                    @if($category->parent===0)
                                        <option value="0" {{0===$category->parent ?'selected':''}} class="text-primary">یک دسته اصلی است </option>

                                    @else
                                        <option value="0" {{0===$category->parent ?'selected':''}} class="text-primary">تغییر به یک دسته اصلی</option>
                                    @endif
                                    @foreach(\App\Category::all() as $cate)
                                        @if(!$cate->id <=> $category->id)
                                        <option value="{{$cate->id }}" {{$cate->id ===$category->parent ?'selected':''}}>{{$cate->name}} </option>
                                        @endif
                                    @endforeach
                                </select>
                            </div>

بخش دیگر هم بخش حذف بود که دوستمون به مشکلاتش اشاره کردن ، من سعی کردم حلش کنم و پس داخل کنترلر یه شرط گذاشتم به صورت زیر.

public function destroy(Category $category)
    {
        $rel=Category::query();

        if ($e=$rel->where('parent',$category->id)->count()){
            alert()->error('ابتدا باید زیر دسته ها حذف شوند.');
            return back();

        }
        else {

            $category->delete();
            alert()->success('دسته مورد نظر حذف شد');
            return back();
        }
    }

میدونم که بهتر میشه پیاده سازی کرد، مثلا دوست داشتم در صورت وجود زیر دسته یه سوییت آلرت نشون بدم با سه تا دکمه که یکی لغو عملیات بود ، یکی حذف به همراه زیر دسته ها ، یکی هم حذف خود دسته و انتقال یک سطح بالاتر زیر دسته ها. اما نمیدونستم چطوری باید مقادیر دکمه های آلرت رو باید بگیرم؟؟ و اگر هم میگرفتم چطوری باید کوئری مربوط به حذف زیر دسته هارو بزنم؟؟
اصلا شاید راه حل بهتری وجود داره؟
آقای موسوی @hesammousavi دوتا سوال بالا رو لطفا یه توضیح بدید (آلرت و کوئری) یا اگه پیاده سازی بهتری وجود داره لطفا بگین.

از دوستان هم خواهش میکنم تو هر قسمت یه چیز جدید یا جالبی که خودشون ایجاد میکنن رو همینجا به اشتراک بذارن.

آفلاین
user-avatar
حسام موسوی
3 هفته پیش

ببییند اینکه به sweetalert گزینه بدید رو در client با جاوااسکریپت فقط میتونید این sweetalert که در سمت لاراول استفاده میکنیم فقط حکم اطلاع رسانی رو داره
و اما در مورد سوال دوم

public function destroy(Category $category)
{
    if ($category->parent){
        alert()->error('ابتدا باید زیر دسته ها حذف شوند.');
        return back();

    }
    else {

        $category->delete();
        alert()->success('دسته مورد نظر حذف شد');
        return back();
    }
}

به شکل بالا هم میتونید کار کنید.
اون مقدار parent رو هم به شکل رابطه hasOne یا belongsTo استفاده کنید و id اون رو به parent_id مرتبط کنید دقیقا برعکس متد child

آفلاین
user-avatar
محمد نمازی
3 ماه پیش

جناب موسوی عزیز خسته نباشید، یه سوال، در قسمت ویرایش که از طریق select دسته های parent رو نشون دادید، چطوری میشه اون لیست رو به شکلی نمایش داد که دسته ها و زیر دسته ها حالت تودرتو داشته باشن ؟

آفلاین
user-avatar
حسام موسوی
3 ماه پیش

کلا در select باکس به شکل پیشرفض نمیشه چنین کاری کرد تنها کاری که میشه کرد اینکه به ترتیب زیر هم اورد که با همون حالت نمایش دسته‌بندی بی نهایت میشه اینکارو انجام داد.

آفلاین
user-avatar
محمد نمازی
3 ماه پیش

با select میشه optgroup تعریف کرد و شاید بشه نمایشش داد. فقط با چه دستوراتی میتونم نام دسته parent , child رو بدون حالت بازگشتی و با Foreach (شاید تودرتو ) نمایش بدم ؟

آفلاین
user-avatar
حسام موسوی
3 ماه پیش

برای یک سطح بله میشه با child و parent اینکارو کرد اما n سطح نیاز هست از حالت بازگشتی استفاده کنید

آفلاین
user-avatar
محمد نمازی
3 ماه پیش

با Foreach تودرتو هم امکانپذیر نیست ؟

آفلاین
user-avatar
حسام موسوی
3 ماه پیش

چه شکلی تا n دسته رو با foreach میخواین پیاده کنید ؟