رابطه many to many با یک ستون اضافه

- 8 ماه پیش
توسط amir9480 آپدیت شد
تیرداد ( 131 تجربه )
8 ماه پیش

سلام
من دوتا جدول دارم به نام های

---packages
-id
-name

---locations
-id
-name

یه جدول واسط دارم

---location_package
-package_id
-location_id

همه چیز درسته و خوب کار می کنه اما من می خوام یه ستون سوم هم به جدولم اضافه کنم

location_package
-package_id
-location_id
-time

به ازای هر لوکشن یه تایم هم دارم که می تونه اعداد مختلفی باشه .
با استفاده از دستور sync() چطور می تونم اون ستون سوم رو مقدار دهی کنم . گشتم روش هایی پیدا کردم اما درست متوجه نشدم که دقیقا باید چی کار کنم .

ابوالفضل ویسی ( 720 تجربه )
8 ماه پیش

از طریق متد updateExistingPivot به صورت زیر

    $user->roles()->updateExistingPivot($roleId, $attributes);

البته این فقط یک مثاله !

amir9480 ( 328 تجربه )
8 ماه پیش

اگه میخای از
sync
استفاده کنی

$location->packages()->sync([
     'آی دی پکیج اولی' => ['time' => 'felan aval'],
     'آی دی پکیج دوم' => ['time' => 'felan dovom'],
     .....
]);

اگه
package
ها رو از قبل ذخیره داری و فقط میخای مقدار تایم رو تنظیم کنی

foreach( $location->packages as $p) {
    $p->pivot->time = "felan";
    $p->pivot->save();
}
برای ارسال پاسخ باید وارد سایت شوید