علی
7 سال پیش توسط علی مطرح شد
2 پاسخ

سیستم علاقه مندی ها

سلام دوستان من برای فروشگاهم میخام سیستم علاقه مندی پیاده سازی کنم. مشابه دیجی کالا. به این صورت که کاربر بیاد و دسته بندی هم برای خودش بسازه.مثلا محصولات تابستانی یا موبایل و ... این دسته بندی با دسته بندی کالا فرق داره . حالا مشکلم اینجاست که چون مقالات هم دارم میخام از روابط پلی مرفیک استفاده کنم و اونا رو پیاده کنم. جداولی که دارم. Product , User , Favourite , FavouriteCategory , Atricle
روابط بین اینها چجوری میشه ؟


ثبت پرسش جدید
مهدی
@code2code 7 سال پیش آپدیت شد
6

هرکاربر چندین پوشه علاقه مندی داره پس یک رابطه یک به چند بین کاربرا (users) و پوشه های علاقه مندی (favorites) برقراره:

users
---------
id
name
....
favorites
---------
id  
name  
user_id  
........

حالا بین محصولات (یا مقالات یا پست ها یا...) با پوشه علاقمندی مد نظر یک رابطه polymorphic برقرار میشه یعنی اگه اسم جدول پوشه علاقه مندی رو بذاریم (favorites) در واقع جدول میانی طبق تعریف به فرم زیر در میاد:

favoriteables
-----------------------
favorite_id
favoriteable_id
favoriteable_type

خوب حالا کار مهم اینجاست اگه کاربری بخواد مثلا بخواد محتوای یه پوششو مثلا با آیدی 2 (که با محصولات و مقالات و دوره ها در ارتباطه) ببینه به فرم زیر عمل میکنه:

$favorite = auth()->user()->favorites()->with(['articles','courses','products'])->find(2);  
$relations = $relations = $favorite->getRelations();  
foreach($relations as $relation){  
    foreach($relation as $item){  
        echo $item->title.'<br>';  
    }  
}

علی
تخصص : Laravel
@alif 7 سال پیش مطرح شد
0

ممنونم دوست عزیز


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

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