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

- 2 سال پیش
توسط مهدی آپدیت شد
علی ( 14111 تجربه )
2 سال پیش
تخصص : Laravel

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

مهدی ( 22862 تجربه )
2 سال پیش

هرکاربر چندین پوشه علاقه مندی داره پس یک رابطه یک به چند بین کاربرا (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>';  
    }  
}
علی ( 14111 تجربه )
2 سال پیش
تخصص : Laravel

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

برای ارسال پاسخ باید وارد سایت شوید