description

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

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

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

---packages
-id
-name

---locations
-id
-name

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

---location_package
-package_id
-location_id

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

location_package
-package_id
-location_id
-time

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

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

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

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

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

amir9480 ( 39 تجربه )
2 ماه پیش

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

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

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

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