راکت
حل شده

منو درختی tree menu

4 پاسخ

سلام
دوستان برای ایجاد منو درختی در لاراول با دیتابیس زیر چه باید کرد نمونه کد بدین ممنون میشم
name
slug
link
parent_id

ثبت پرسش جدید

پاسخ‌ها

4
Igo
Igo
@Igo
بهترین پاسخ

سلام دوست عزیز
شما باید یک جدول به اسم Menu در دیتابیس خودتون داشته باشید که علاوه بر اطلاعت مورد نیاز باید یکه رابطه با خود جدول Menu داشته باشه و یک فیلد به اسم ParentMenuId که این فیلد کلید خارجی خود جدول Menu به جدول Menu میشه. این فیلد حتما باید مقدار Null رو بپذیره
به این نوع رابطه ها میگن رابطه سلف جوین. و به کمک این رابطه شما میتونید که تمام روابط درختی رو پیاده سازی کنید.
حالا شما با استفاده از فیلد ParentMenuId و یک حلقه میتونید منوها رو بدرستی واکشی کنید و نمایش دهید فقط توجه داشته باشید که وقتی ParentMenuId مقدار Null داشته باشه منو ریشه است .
بحث دیگه ایی که اینجا مطرح هست اینه که شما توی تمام صفحاتتون باید منو هارو نمایش دهید و همه ما میدونیم که ارتباط با دیتابیس یک عمل سنگین و زمان بر حساب میشه. با این روند شما هر صفحه ایی رو که درخواست کنید یک کانکشن با دیتابیس بر قرار میشه و تمام منو ها رو واکشی میکنه
پیشنهاد شما برای رفع این مشکل چیه ؟؟؟؟

مجید فیضی
مجید فیضی
@sermajid

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

مهدی رستگار
مهدی رستگار
@rm.8968

تخصص: توسعه دهنده frontend & backend

اگه منو درختی میخواین که تا n سطح زیرمنو داشته باشه میتونید به لینک زیر مراجعه کنید درضمن نظرات دوستان هم در این مورد درست بود ولی گفتین نحوه کد نویسی میخواین تو این لینک کامل توضیح داده دمو هم داره میتونید نتیجه اش رو ببینید
https://itsolutionstuff.com/post/laravel-5-category-treeview-hierarchical-structure-example-with-demoexample.html

اینم لینک دمو :
http://demo.itsolutionstuff.com/category-tree-view

شاید پاسخ شما همین‌جا باشد

Mohammad.H
Mohammad.H
@moohammadh55

@sermajid3 از طریق تابع بازگشتی میتونید این کار رو بکنید. البته تابع بازگشتی که کوئری داخل loop همش تکرار نشه و فقط یکبار کوئری زده بشه و باقی کارها با foreach کردن آرایه دریافتی انجام بگیره.
https://www.phpzag.com/how-to-create-dynamic-tree-view-menu-in-php/

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

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