راکت
حل شده

معرفی متدد withPivot

4 پاسخ

@mohaligateway
@muhammad
@ali.bayat
@Rp76
کاربرد این متددwithpivot چیست

return $this->belongsToMany('Establishment')->withPivot('start', 'stop', 'study_level_id')->withTimestamps();
ftp
ftp
@ftp
ثبت پرسش جدید

پاسخ‌ها

4
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین پاسخ

روابط چند به چند به یه جدول میانی یا pivot table نیاز دارند
مثلا اگر مدلهای Post و Tag رو داشته باشیم، نهایتا به یه جدول pos_tag هم نیاز داریم، که به صورت پیشفرض ۲ فیلد post_id و tag_id درش ذخیره میشه

حالا مواقعی پیش میاد که نیاز داری به جز این ۲ تا فیلد، فیلد های دیگه رو هم در pivot ذخیره کنی
در این شرایط از متد withPivot استفاده میکنند
مثلا توی کدی که گذاشتی با استفاده از این متد حالا فیلدهای start, stop و study_level_id هم مقدار دهی میشند

پس در حین استفاده از این رابطه باید آن فیلد هارو هم پاس داد

$pivotAdditionals = [
    'start' => '',
    'stop' => '',
    'study_level_id' => '',
];
$model->relation()->attach($relationId, $pivotAdditionals);
Muhammad
Muhammad
@muhammad

تخصص: Back-End Developer

وقتی در Pivot Table ستون‌های دیگری داشته باشیم و بخواییم ازشون استفاده کنیم، با withPivot معرفی می‌کنیم و بعدا از

$model->pivot->column_name

می‌گیریم.

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

به نظرم داره به جدول واسط اشاره میکنه و میگه فیلدهای start و stop رو از جدول واسط بگیر براساس فیلد آیدی study_level_id

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

Saman
Saman
@samanzdev

تخصص: برنامه نویس وب

سلام
می توانید برای کسب اطلاعات به لینک زیر برید
https://laravel.com/docs/8.x/eloquent-relationships
@ftp

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

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