سلام دوستان خسته نباشید
من رابطه ای چند به چند بین محصولات و دسته بندی اونها دارم میخام کاربر وقتی روی دسته بندی مورد نظر کلیک کرد بره و محصولات اون دسته بندی را نشونش بده تابعی که برای این کار استفاده میکنم به شکل زیر هست
public function category_products(Category $category)
{
$products = Product::with('photos')->whereHas('categories', function($q) use($category){
$q->where('id', $category->id);
})->paginate(3);
dd($products);
return view('front.product.category_products',compact('category'));
}
اما وقتی دی دی میکنم محصولات رو با خطای
SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous
مواجه میشم و نمیتونم محصولات دسته بندی رو به ویو خودم بفرستم..ممنون میشم راهنمایی کنید کجای کدم اشتباهه؟
معنای پیغام خطا این هست که ستون id که بهش رفرنس دادید مبهم و دوپهلوست. علتش هم اینه که نمیتونه متوجه بشه منظورتون id جدول products هست یا categories.
راه حل ساده اش جایگزین کردن کوئری زیر هست:
$products = Product::query()
->with('photos')
->whereHas('categories', function($q) use($category){
$q->where('products.id', $category->id);
})->paginate(3);
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟