سلام دوستان
توی یک پروژه من نیاز دارم که برای هر محصول چند دسته بندی ذخیره کنم
الان من اومدم یک جدول برای محصولات دارم و یک جدول برای دسته بندی ها و یک جدول واسط هم ایجاد کردم با فیلد های 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]);
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟