Full Stack Developer
نشان دادن تمام منوها و زیر منوها از دیتابیس در لاراول
در نظر بگیرین یه CMS نوشتین یا به هر دلیل منو و زیر منوهاتونو در دیتابیس ذخیره میکنین تا بهتر مدیریت کنین.
حالا وقتی بخواین اونارو لیست کنین با مشکلاتی مواجه میشین از جمله:
- استفاده از قطعه کدی که چندین بار Query Builder رو صدا کنه
- یه Foreach که نمیتونه عمق منو رو تشخیص بده
- کلی حلقه و شرط اضافی
- و...
من برای حل این مسئله میخوام یه راه حل بدم
X Menu
اول برین اینجا و پروژه رو Clone یا Download کنین
برین تو دایرکتوری لاراولتون و فایل xmenu.blade.php رو در « میخواد/دلتون/هرجا/views » قرار بدین
حالا برین هرجا که میخواین منوهاتون رو لیست کنین (حتما باید در یک فایل blade.php. باشین) و فایل xmenu.blade.php رو include کنین
@include('Address.to.xmenu')
حالا که فایل xmenu.blade.php رو در دل قطعه کدهاتون قرار دادین در خط بعدش باید یه function رو صدا کنین
@php
xmenu ( 0 , 'Category Table' , 'Column of Category name' , 'Column of Category id' );
@endphp
مقادیری که به این فانکشن باید بفرستین رو به ترتیب توضیح میدم:
- شماره ی اولین پدر (هر منو یه شماره پدر داره که در واقع نشون دهنده ی این است که هر منو زیر منو کدام آیتم هستش)
- نام جدول (جدولی که منوهای شما داخلش هستن)
- نام ردیفی که نام منوهاتون در اون جاداره
- نام ردیفی که نشان دهنده ی شماره منو پدر هستش (اگر هنوز "شماره پدر" شمارو گُنگ کرده پایین تر یه نمونه دیتابیس نشون میدم که از این حال در بیاین )
7- محصولات |
--------------------------------------------------------------
|| 10- محصول (8) |
8- درج (7) ||----------------------------------
|| 11-تنوع (8) |
______________________________________
|| 12-محصول (9) |
9- ویرایش (7) ||-----------------------------------
|| 13-تنوع (9) |
______________________________________
عددهایی که در پرانتز ها میبینید شماره پدر هستند و نشون میده هر منو باید زیر کدوم منو باشه (توجه کنید که پدر اصلی و اولین پدر برابر با صفر میباشد)
الان با توجه به این نمونه دیتابیس (نام جدول category میباشد) باید فانکشن رو مثل کد زیر صدا کنیم
@php
xmenu(0,'category','cname','pid');
@endphp
یه مسئله دیگه میمونه
احتمالا شما میخواین زیر منو ها معلوم نباشن و فقط اگر کاربر روی منویی ماوس رو برد زیر منوهاش معلوم بشن و واسه این کار یک استایل css نوشتین
خب میتونین برین تو فایل xmenu.blade.php و قطعه کد زیر رو پیدا کنید و اسم class خودتون رو بزارین
$class="header__menu__dropdown"
و تمام.
تمام تلاشمو کردم ساده و کامل توضیح بدم.
فایل xmenu.blade.php توسط بنده توسعه پیدا کرده و همچنان در حال توسعه و بهتر شدن میباشد.
آیا شما روش بهتری برای معرفی میشناسید؟
لطفا نظرات خودتون رو بهم بگین.
مطلبی دیگر از این انتشارات
تحصیلات آکادمیک «مهندسی نرم افزار» لازمه؟
مطلبی دیگر از این انتشارات
چرا دیگه از فرانش استفاده نمیکنم؟
مطلبی دیگر از این انتشارات
تفاوت دستورات Wait و Ontime در ماکرونویسی اکسل