راکت

کمک برای نمایش محصولات مرتبط

2 پاسخ

سلام
محصولات من والد و فرزند دارن و با 2 متد parent و children درست کردم
حالا میخوام وقتی کلیک شد روی محصولی که مشابه داره و مشابه هاش به همراه خودش children یک محصول واحد هستن را نشون بده
کد زیر را نوشتم ولی توی متد related مشکل دارم

مثلا محصول A والد محصولات B - C -D هست

خب با متد children توی تک محصول A راحت محصولات B و C و D را نمایش میدم

ولی میخوام وقتی روی مثلا C کلیک شد محصولات A و B و D هم نشون بدم

    public function parent()
    {
        return $this->belongsTo(Product::class, 'parent_id');
    }

    public function children()
    {
        return $this->hasMany(Product::class, 'parent_id');
    }

    public function related()
    {
        $productId = $this->id;
        return $this->whereHas('conditions.products', function ($q) use ($productId) {
            $q->where('id', $productId);
        })->get();
    }
نوب
نوب
@yk5742g
ثبت پرسش جدید

پاسخ‌ها

2
نوب
نوب
@yk5742g

تخصص: کدنویس نوب :)

@ali.bayat
@mhyeganeh
لطفا کمک کنین
سپاس

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

می‌تونید یک آرایه درست کنید.
اول چک کنید که آیا محصول انتخابی والد داره یا نه. اگر داشت در مرحله اول آیدی والد رو به این آرایه push کنید و بعد با استفاده از همین متد children که خودتون ساختید و استفاده از متدهای pluck و toArray ، آرایه متشکل از آیدی محصولات زیر مجموعه رو بگیرید و آیدی خود محصول رو ازش حذف کنید و به اون آرایه قبلی push کنید.

در نهایت شما یک آرایه دارید متشکل از آیدی محصولاتی که نیاز دارید. پس کافیه در گام آخر با استفاده از متد whereIn کوئری مورد نظرتون رو اجرا کنید:

return Product::whereIn('id', $products_array)->get();

شاید پاسخ شما همین‌جا باشد

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

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