استفاده از جدول واسط در لاراول

- 3 هفته پیش
توسط علی بیات آپدیت شد
eMBi ( 2670 تجربه )
3 هفته پیش

سلام

پایگاه داده من به این صورت طراحی شده که یک جدول برای تگ ها دارم، و دو جدول برای مقالات و اخبار

همه ی تگ هاتوی جدول tags ذخیره میشه و دو جدول با نام های news_tags و article_tags دارم که فیلد هاشون به این صورت هست :

article_tags{article_id, tag_id}
news_tags{news_id, tag_id}

حالا چطور میتونم کد مربوط به ریلیشن رو بنویسم که تگهای یک خبر یا مقاله رو دریافت کنم ؟
ممنونم

علی اسماعیلی ( 2192 تجربه )
3 هفته پیش

@bahadori.embi

سلام اولا اسم تیبل دوم رو به صورت مفرد بزارید article_tag

(https://laravel.com/docs/5.8/eloquent-relationships#many-to-many)

این لینک رو مطاله کنید متوجه میشید

علی بیات ( 59172 تجربه )
3 هفته پیش

@bahadori.embi
شما ۲ تا پیوِت‌ تیبل دارید٬ در صورتی که میتوانید از یک جدول برای هر ۲ نوع تگ ها هم استفاده کنید.
اما به هر حال:

return $this->belongsToMany('Model', 1, 2, 3);

توجه داشته باشید گزینه های ۱ تا ۳ آپشنال هستند
1: نام pivot table یا جدول ارتباطی : "article_tag" (برای مواقعی که اسم جدول شما بجای حالت مفرد اسم جدول‌ها٬ چیز دیگه‌ای باشه مثلا: "my_Article_tags")
2: نام فیلد id در جدول article (برای مواقعی که شما مثلا از article_identifier بجای id استفاده کردید)
3: نام فیلد id در جدول tags (برای مواقعی که شما مثلا از tag_identifier بجای id استفاده کردید)

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