⏳۵۰٪ تخفیف فقط تا پایان جشنواره؛ بعدش همهچیز به قیمت قبل برمیگرده!
مشاهده دورههاسلام دوستان
توی یک پروژه من نیاز دارم که برای هر محصول چند دسته بندی ذخیره کنم
الان من اومدم یک جدول برای محصولات دارم و یک جدول برای دسته بندی ها و یک جدول واسط هم ایجاد کردم با فیلد های 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 و 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]);
@mehranmarandi90
از شما هم ممنونم برای توضیحاتی که ارائه دادید