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