راکت
حل شده

مشکل relation sync در لاراول

2 پاسخ

سلام دوستان .
وقت بخیر .
امید وارم خوب باشید .

من یک جدولی دارم به به اسم customer_owner که یک جدول واسطه هست و یک فیلد status هم به صورت pivot داره به این صورت :

  • customer_id
  • owneri_d
  • status

مشکل اینجاست که ما یک سری متد داریم برای ذخیره کردنشون :

  • attach
  • sync
  • syncWithoutDetaching

حالا -> من اگه 10 تا رکورد ثبت کنم و status = 0 باشه و بعد از فراخوانی اونها برم status = 1 کنم ، دفعه بعد بخوام توسط متد های بالا 5 تای اونهارو ذخیره کنم یک مشکلی هست : یا استاتوس ها اعمال نمیشن چون از اول اتچ میشه . یا اعمال میشه و همون 10 تارو نشون میده !!

امید وارم تونسته باشم مشکلم رو درست بیان کنم.
پیشاپیش ممنون از اینکه وقت میزارید.

ثبت پرسش جدید

پاسخ‌ها

2
علی باقری
علی باقری
@alibagheri

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

بهترین پاسخ

جواب سوال بالا
شما میتونید به متد sync مقدار pivot رو بدید و در هر بار اینم به همراه بقیه آپدیت میشه .

sync([
    related_id => ['pivot_field' => value],
    ...
]);
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

دو مثال زیر در مستندات رسمی لاراول آورده شده و به نظرم پاسخ سوالتون هم هست:

$user->roles()->sync([1, 2, 3]);

//You may also pass additional intermediate table values with the IDs:
$user->roles()->sync([1 => ['expires' => true], 2, 3]);

//If you would like to insert the same intermediate table values
//with each of the synced model IDs, you may use the syncWithPivotValues method:
$user->roles()->syncWithPivotValues([1, 2, 3], ['active' => true]);

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

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

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