یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهاسلام دوستان
توی یک پروژه من نیاز دارم که برای هر محصول چند دسته بندی ذخیره کنم
الان من اومدم یک جدول برای محصولات دارم و یک جدول برای دسته بندی ها و یک جدول واسط هم ایجاد کردم با فیلد های product_id و category_id الان اینارو چطوری میتونم به هم متصل کنم تا دسته بندی ها یک محصول رو دریافت کنم ؟؟
رابطه شما میشه چند به چند:
داخل مدل Product متد زیر رو اضافه کنید.
public function categories() {
return $this->belongsToMany(Category::class);
}
داخل مدل Category هم متد زیر رو اضافه کنید.
public function products() {
return $this->belongsToMany(Product::class);
}
واسه ذخیره سازی هم باید از sync استفاده کنید، به این صورت که در متد store، پس از انجام مراحلی که دارید (منظور ذخیره عکس محصول، اعتبارسنجی و ...) در انتها باید کد زیر رو قرار بدید.
$product->categories()->sync($data['categories']);
امیدوارم مفید بوده باشه.
موفق باشید.
سلام.
الان شما منظورتون ذخیره سازی اطلاعات داخل جدول واسط هست یا اینکه کلا از اول میخواین واستون فرایند رو توضیح بدم؟
@rezajahangir
سلام ممنون میشم اگر توضیح بفرمایید
البته توی درج اطلاعات روی دیتابیس مشکل نیست فقط توی ساختارش به مشکل خوردم , و نمی تونم دسته بندی ها رو به محصولات توسط جدول واسط ارتباط بدم
رابطه شما میشه چند به چند:
داخل مدل Product متد زیر رو اضافه کنید.
public function categories() {
return $this->belongsToMany(Category::class);
}
داخل مدل Category هم متد زیر رو اضافه کنید.
public function products() {
return $this->belongsToMany(Product::class);
}
واسه ذخیره سازی هم باید از sync استفاده کنید، به این صورت که در متد store، پس از انجام مراحلی که دارید (منظور ذخیره عکس محصول، اعتبارسنجی و ...) در انتها باید کد زیر رو قرار بدید.
$product->categories()->sync($data['categories']);
امیدوارم مفید بوده باشه.
موفق باشید.
همونطور که دوستمون گفتن باید در مدل product و categoriy روابط رو تعریف کنید
برای اتصال این دو به هم دیگه همچنین میتونید از متد های زیر هم استفاده کنید
$products->categories()->attach($category_id );
$products->categories()->detach($category_id );
و اگر میخوایید مشخص کنید که در جدول واسطه فقط دسته بندی هایی با id 1 2 3 باقی بمونن
$products->categories()->sync([1, 2, 3]);
و اگر میخوایید id های 1 2 3 اضافه بشن و اگر id دیگه ای هم هست حذف نشه کد زیر
$products->categories()->syncWithoutDetaching([1, 2, 3]);
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟