نوب
3 سال پیش توسط نوب مطرح شد
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 3 سال پیش مطرح شد
0

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


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
0

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

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

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

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

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