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 توسط بنده توسعه پیدا کرده و همچنان در حال توسعه و بهتر شدن میباشد.
آیا شما روش بهتری برای معرفی میشناسید؟
لطفا نظرات خودتون رو بهم بگین.
مطلبی دیگر از این انتشارات
سوکت چیست ؟
مطلبی دیگر از این انتشارات
جریان چیه؟
مطلبی دیگر از این انتشارات
دلنوشته قسمت اول