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

4 سال پیش توسط علی مطرح شد
آفلاین
user-avatar
علی ( 14411 تجربه )
4 سال پیش
تخصص : Laravel

لینک کوتاه اشتراک گذاری

1

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

آفلاین
user-avatar
مهدی ( 23322 تجربه )
4 سال پیش

لینک کوتاه اشتراک گذاری

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>';  
    }  
}
آفلاین
user-avatar
علی ( 14411 تجربه )
4 سال پیش
تخصص : Laravel

لینک کوتاه اشتراک گذاری

0

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

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.