BahmanSE
1 سال پیش توسط BahmanSE مطرح شد
4 پاسخ

پیاده سازی منو داینایک

سلام دوستان وقت بخیر
بنده منو و زیر منو رو از طریق ریلشن طراحی کردم . بعدش اومدم منو و زیر منو رو با کاربرها هم ریلیشن زدم

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

ممنون میشم کمک کنید

Menu
id
title
Sub menu
id
title
User 
id
name

ثبت پرسش جدید
محمد شریف احمدی
تخصص : یک عدد برنامه نویس
@mrahmadi 1 سال پیش مطرح شد
0

با توجه به توضیحات شما، اگر منظورتان از "زیرمنو" یک منوی فرعی برای هر منوی اصلی است، می‌توانید به دو طریق این مشکل را حل کنید:

استفاده از دو ستون در جدول دیتابیس
در جدول Sub menu، به جای یک ستون Menu_id، از دو ستون Menu_id و User_id استفاده کنید. به این صورت می‌توانید هر زیرمنو را به یک کاربر خاص و منوی مادر مربوط به آن اختصاص دهید.

دادن دسترسی به کاربران با استفاده از pivot table
در این روش، یک جدول pivot برای ارتباط بین منوها، کاربران و زیر منوها ایجاد می‌کنید به صورت زیر:

pivot table:
id
menu_id
sub_menu_id
user_id

سپس برای هر رابطه به صورت زیر ریلیشن شود:

یک رابطه many-to-many بین جدول Menu و User بسازید و آن را از طریق جدول pivot ریلیشن کنید.
یک رابطه many-to-many بین جدول Sub menu و User بسازید و آن را از طریق جدول pivot ریلیشن کنید.
یک رابطه many-to-one بین جدول Menu و Sub menu بسازید.
حالا با استفاده از ریلیشن‌های بالا، می‌توانید برای هر کاربر، منوی مورد نظر را نمایش دهید و در صورت وجود، زیرمنوهای مربوط به آن را نیز نمایش دهید. به عنوان مثال، برای کاربری که لاگین کرده، از طریق یک کوئری به انتخاب منوهای مربوط به آن بپردازید و پس از اینکه یک منو انتخاب شونده است، با استفاده از رابطه‌ی ایجاد شده برای نمایش زیر منوهای آن منو را ریلیشن کنید.


میکائیل
تخصص : برنامه نویسی سمت سرور و کلاینت
@FullStack 1 سال پیش مطرح شد
0

سلام دوست عزیز من متوجه منظورتون نشدم که میخواید منو رو چیکار کنید و چرا نمیشه زیر منو رو شرطی کرد اگه میشه واضح تر توضیح بدید بهتر میشه


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 1 سال پیش مطرح شد
0

درود خوبی...
برای نمایش محتوای منو باید از قابلیت Composer لاراول استفاده کنید.


BahmanSE
تخصص : برنامه نویس
@bahman.king 1 سال پیش مطرح شد
0

منو و زیرمنو رو تعریف میکنم . این دوتا ریلشن هستن و بدون مشکل نشون داده میشه .

مشکلم اینه منو و زیر منو رو می خوام از طریق ریلشن به کاربرها ربط بدم که کدوم کاربر کدوم منو و زیر منو رو ببینه

این قسمت هم اکی هست . منو رو براساس کاربرانی که مجوز دیدن دارن نشون میده . گیرم زیر منو هستش

نمی تونم زیر منو رو دو تا شرط براش بذارم . میخوام زیر منو هم مجوز کاربر داشته باشه هم که در منو مادر مربوط به خودش نشون داده بشه


محمد شریف احمدی
تخصص : یک عدد برنامه نویس
@mrahmadi 1 سال پیش مطرح شد
0

با توجه به توضیحات شما، اگر منظورتان از "زیرمنو" یک منوی فرعی برای هر منوی اصلی است، می‌توانید به دو طریق این مشکل را حل کنید:

استفاده از دو ستون در جدول دیتابیس
در جدول Sub menu، به جای یک ستون Menu_id، از دو ستون Menu_id و User_id استفاده کنید. به این صورت می‌توانید هر زیرمنو را به یک کاربر خاص و منوی مادر مربوط به آن اختصاص دهید.

دادن دسترسی به کاربران با استفاده از pivot table
در این روش، یک جدول pivot برای ارتباط بین منوها، کاربران و زیر منوها ایجاد می‌کنید به صورت زیر:

pivot table:
id
menu_id
sub_menu_id
user_id

سپس برای هر رابطه به صورت زیر ریلیشن شود:

یک رابطه many-to-many بین جدول Menu و User بسازید و آن را از طریق جدول pivot ریلیشن کنید.
یک رابطه many-to-many بین جدول Sub menu و User بسازید و آن را از طریق جدول pivot ریلیشن کنید.
یک رابطه many-to-one بین جدول Menu و Sub menu بسازید.
حالا با استفاده از ریلیشن‌های بالا، می‌توانید برای هر کاربر، منوی مورد نظر را نمایش دهید و در صورت وجود، زیرمنوهای مربوط به آن را نیز نمایش دهید. به عنوان مثال، برای کاربری که لاگین کرده، از طریق یک کوئری به انتخاب منوهای مربوط به آن بپردازید و پس از اینکه یک منو انتخاب شونده است، با استفاده از رابطه‌ی ایجاد شده برای نمایش زیر منوهای آن منو را ریلیشن کنید.


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

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