ARON
3 سال پیش توسط ARON مطرح شد
6 پاسخ

نتیجه تکراری در دریافت اطلاعات از دیتابیس

محصولات من تو دسته بندی های مختلفی قرار میگیرن هر محصول ممکن 3 تا دسته بندی داشته باشه
وقتی میخوام با استفاده از RELATION محصولات دسته بندی ها رو بگیرم و نمایش بدم محصولاتی که تو چند دسته بندی هستن به همون تعداد تکرار میشن
چجوری میشه این نکته رو رفع کرد؟

            @foreach($categoryProducts as $categoryproduct)
                @foreach($categoryProduct->products->unique('id')->take(1) as $product)
                <div class="masonry-grid-item" data-groups="[&quot;{{$product->categories[0]->slug}}&quot;]">
                    <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

ثبت پرسش جدید
امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 3 سال پیش مطرح شد
0

سلام. کد relation رو بذارید. از belongsToMany استفاده میکنید برای ارتباط بین دسته بندی و محصولات؟


امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 3 سال پیش مطرح شد
0

شما بایستی یه 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 مهمه. احتمالا شما برعکس میذارید.


ARON
تخصص : برنامه نویس
@aron 3 سال پیش مطرح شد
0

@amin.webdesign بله
فقط کدی که شما گفتی رو گذاشتم ارور داد و اینکه همونطور که میدونید من از جدول واسط استفاده میکنم

    public function products()
    {
        return $this->belongsToMany(Product::class);
    }

امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 3 سال پیش مطرح شد
0

خطا حتما به خاطر اسامی که من استفاده کردم بوده و با مال شما متفاوت بوده. ان شاالله که مشکلتون حل شده باشه.


ARON
تخصص : برنامه نویس
@aron 3 سال پیش مطرح شد
0

@amin.webdesign مشکل اسم نبود ولی باز ارور میده و مشکل داره علتش هم فکر میکنم همون جدول واسط باشه


امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 3 سال پیش مطرح شد
0

شما توی کدی که دادم نام جدول واسط و پارامترهای جدول واسط رو بر اساس اولویت بذارید. اگه حل نشد یه بار مقادیری که توی جدول واسط قرار گرفته رو پاک کنید و مجددا بر اساس آخرین تغییری که توی relation دادید رابطه هارو ایجاد کنید.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام