تیرداد
7 سال پیش توسط تیرداد مطرح شد
2 پاسخ

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

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

---packages
-id
-name

---locations
-id
-name

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

---location_package
-package_id
-location_id

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

location_package
-package_id
-location_id
-time

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


ثبت پرسش جدید
ابوالفضل ویسی
تخصص : برنامه نویس بک اند و فرانت اند
@vaysi 7 سال پیش آپدیت شد
1

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

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

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


امیر علیزاده
تخصص : توسعه دهنده بک اند
@amiralizadeh9480 7 سال پیش مطرح شد
1

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

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

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

foreach( $location->packages as $p) {
    $p->pivot->time = "felan";
    $p->pivot->save();
}

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

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