راکت

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

2 پاسخ

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

علی
علی
@alif
ثبت پرسش جدید

پاسخ‌ها

2
مهدی
مهدی
@code2code

هرکاربر چندین پوشه علاقه مندی داره پس یک رابطه یک به چند بین کاربرا (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>';  
    }  
}
علی
علی
@alif

تخصص: Laravel

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

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

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

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