آفلاین
user-avatar

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

3 سال پیش
توسط امیر علیزاده آپدیت شد
آفلاین
user-avatar
تیرداد ( 6738 تجربه )
3 سال پیش

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

---packages
-id
-name

---locations
-id
-name

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

---location_package
-package_id
-location_id

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

location_package
-package_id
-location_id
-time

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

آفلاین
user-avatar
ابوالفضل ویسی ( 750 تجربه )
3 سال پیش
تخصص : برنامه نویس بک اند و فرانت اند

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

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

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

آفلاین
user-avatar
امیر علیزاده ( 498 تجربه )
3 سال پیش
تخصص : توسعه دهنده بک اند

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

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

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

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