یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهاسلام
در رابطه many to many لاراول باید یک جدول رابط مین دو مدل ایجاد و از اون به عنوان ایجاد رابطه استفاده کنیم
حالا فرض کنید در اون جدول رابط به جز id دو مدل مرتبط بخوایم یه سری داده از دو مدل هم در هر رکورد ذخیره بشه
سوال اینجاست که چطور به بهینه ترین حالت پیاده سازیش کنم ؟
آیا در پیش فرض لاراول چنین چیزی هست ؟
لاراول خودش همچین حالتی رو پشتیبانی میکنه
در رابطه های چند به چند اگر بخواهی فیلد اضافه ای رو ذخیره کنی باید در حین تعریف رابطه اون فیلد ها رو مشخص کنی
برای این کار میتونی از متد withPivot استفاده کنی و لیستی از فیلدها رو بهش پاس میدی
return $this->belongsToMany('App\Model')->withPivot('column1', 'column2');
در حین استفاده از متد attach هم باید آرایه ای از اطلاعات رو پاس بدی
$user->relation()->attach($roleId, ['column1' => $column1, 'column2' => $column2]);
با سلام.بله این مورد در لاراول وجود دارد و در لینک زیر به صورت کامل آموزش داده شده است.
لاراول خودش همچین حالتی رو پشتیبانی میکنه
در رابطه های چند به چند اگر بخواهی فیلد اضافه ای رو ذخیره کنی باید در حین تعریف رابطه اون فیلد ها رو مشخص کنی
برای این کار میتونی از متد withPivot استفاده کنی و لیستی از فیلدها رو بهش پاس میدی
return $this->belongsToMany('App\Model')->withPivot('column1', 'column2');
در حین استفاده از متد attach هم باید آرایه ای از اطلاعات رو پاس بدی
$user->relation()->attach($roleId, ['column1' => $column1, 'column2' => $column2]);
@ali.bayat
سلام. در متد sync باید به چه شکل عمل کنیم؟ من یک سری دیتا میخام در جدول color_product ذخیره کنم. با متد attach همه اون دیتا ها اضافه میشه ولی در متد sync خیر .
$product->colors()->attach($data['colors'] ,['pricecolor'=>$request ->pricecolor , 'inventory'=>$request ->inventory]); // در متد اینجا اطلاعات به طور کامل در جدول واسط ثبت میشه اما در متد سینک خیر
@ali.bayat
سلام کار متد sync رو میدونم. فکر می کنم سوال منو درست متوجه نشدید. من منظورم این هست که اون دیتا هایی که میخام تو جدول واسط colo_product ذخیره کنم در متد sync این اطلاعات ذخیره نمیشه ولی همین دیتا ها در متد attach به درستی ذخیره میشه. الان چجوری این اطلاعات رو توسط متد sync ذخیره کنم؟
سلام.
شما باید از دستور syncWithPivotValues استفاده کنی.
$user->role()->syncWithPivotValues($role, ['name' => 'sth'])
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟