سلام
محصولات من والد و فرزند دارن و با 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();
}
میتونید یک آرایه درست کنید.
اول چک کنید که آیا محصول انتخابی والد داره یا نه. اگر داشت در مرحله اول آیدی والد رو به این آرایه push کنید و بعد با استفاده از همین متد children که خودتون ساختید و استفاده از متدهای pluck و toArray ، آرایه متشکل از آیدی محصولات زیر مجموعه رو بگیرید و آیدی خود محصول رو ازش حذف کنید و به اون آرایه قبلی push کنید.
در نهایت شما یک آرایه دارید متشکل از آیدی محصولاتی که نیاز دارید. پس کافیه در گام آخر با استفاده از متد whereIn کوئری مورد نظرتون رو اجرا کنید:
return Product::whereIn('id', $products_array)->get();
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟