محصولات من تو دسته بندی های مختلفی قرار میگیرن هر محصول ممکن 3 تا دسته بندی داشته باشه
وقتی میخوام با استفاده از RELATION محصولات دسته بندی ها رو بگیرم و نمایش بدم محصولاتی که تو چند دسته بندی هستن به همون تعداد تکرار میشن
چجوری میشه این نکته رو رفع کرد؟
@foreach($categoryProducts as $categoryproduct)
@foreach($categoryProduct->products->unique('id')->take(1) as $product)
<div class="masonry-grid-item" data-groups="["{{$product->categories[0]->slug}}"]">
<a class="card card-hover border-0 shadow" href="{{route('product.single',['category'=>$product->categories[0]->slug,'project'=>$product->slug])}}">
<img class="card-img-top" src="{{$product->image}}" alt="Portfolio thumb">
<div class="card-body text-center">
<h3 class="h5 nav-heading mb-2">{{$product->title}}</h3>
<p class="fs-sm text-muted mb-2">test</p>
</div>
</a>
</div>
@endforeach
@endforeach
سلام. کد relation رو بذارید. از belongsToMany استفاده میکنید برای ارتباط بین دسته بندی و محصولات؟
شما بایستی یه relation به شکل زیر در مدل دسته بندی تعریف کرده باشید.
public function products(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
{
return $this->belongsToMany(Products::class,'product_category','category_id','product_id');
}
ترتیب category_id و product_id در آرگومان های این متد belongsToMany مهمه. احتمالا شما برعکس میذارید.
@amin.webdesign بله
فقط کدی که شما گفتی رو گذاشتم ارور داد و اینکه همونطور که میدونید من از جدول واسط استفاده میکنم
public function products()
{
return $this->belongsToMany(Product::class);
}
خطا حتما به خاطر اسامی که من استفاده کردم بوده و با مال شما متفاوت بوده. ان شاالله که مشکلتون حل شده باشه.
@amin.webdesign مشکل اسم نبود ولی باز ارور میده و مشکل داره علتش هم فکر میکنم همون جدول واسط باشه
شما توی کدی که دادم نام جدول واسط و پارامترهای جدول واسط رو بر اساس اولویت بذارید. اگه حل نشد یه بار مقادیری که توی جدول واسط قرار گرفته رو پاک کنید و مجددا بر اساس آخرین تغییری که توی relation دادید رابطه هارو ایجاد کنید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟