मेरे पास यह कार्य है:

    public function landings($slug){
        $landing = Landing::where('slug', $slug)->firstOrFail();

    //use to get categories id stored in DB
        $cat = DB::table('landing_categories')->where('landing_id', $landing->id)->get();
        foreach ($cat as $key) {
          $id[] = $key->category_id;
        }

// use to get specifications id and compare it with products that have same specifications id's
        $subs = DB::table('landing_specifications')->where('landing_id', $landing->id)
        ->join('product_subspecification', function ($keys) {
            $keys->on('product_subspecification.subspecification_id', '=', 'landing_specifications.subspecification_id');
        })
        ->join('products', 'products.id', '=', 'product_subspecification.product_id')
        ->get();
    // dd($subs);

// using this to get result of 2 queries above at once
        $prod = DB::table('products')
        ->whereIn('products.category_id', $id)
        ->groupby($subs)
        ->get();
        return view('front.landing', compact('landing', 'prod'));
      }

क्वेरीज़: $cat और $subs उम्मीद के मुताबिक काम कर रहे हैं और वे परिणाम लौटा रहे हैं जिनकी मुझे तलाश है।

मेरी समस्या यह है कि उन दोनों को $prod क्वेरी में कैसे बांधा जाए?

अब तक मैं cat द्वारा whereIn का उपयोग कर सकता हूं लेकिन जैसा कि आप देखते हैं $subs और $prod दोनों DB::table('products') प्राप्त करने का प्रयास करते हैं और मुझे लगता है कि यही समस्या है।

यह त्रुटि मुझे मिलती है:

SQLSTATE [HY093]: अमान्य पैरामीटर संख्या: मिश्रित नाम और स्थितीय पैरामीटर (एसक्यूएल: products से * चुनें जहां products.category_id (3, 4) में समूह द्वारा `[{"id":1,"landing_id":8,"s // जारी रखा जाना है...

पुनश्च: अगर मैं ->groupby($subs) के बजाय ->union($subs) का उपयोग करता हूं तो मुझे मिलेगा:

विधि getBindings मौजूद नहीं है।

अपडेट करें

dd($id);

array:2 [▼
  0 => 3
  1 => 4
]

dd($subs);

Collection {#721 ▼
  #items: array:5 [▼
    0 => {#710 ▼
      +"id": 1
      +"landing_id": 8
      +"subspecification_id": 1
      +"product_id": 1
      +"title": "product one"
      +"slug": "product-one"
      +"imageOne": "product-1517990897.jpg"
      +"imageTwo": "product-1517990897.png"
      +"short_description": "<p>this is first testing product</p>"
      +"description": "<p>this is first testing product this is first testing product this is first testing product this is first testing product this is first testing product this is ▶"
      +"price": "10000000"
      +"meta_description": null
      +"meta_tags": null
      +"arrivalDays": "2"
      +"height": "100"
      +"weight": "1"
      +"lenght": "100"
      +"width": "100"
      +"sku": "1985629"
      +"stock": "16"
      +"status_id": 1
      +"brand_id": 2
      +"category_id": 1
      +"subcategory_id": 2
      +"created_at": "2018-02-07 15:05:00"
      +"updated_at": "2018-02-28 14:16:46"
    }
    1 => {#716 ▶}
    2 => {#714 ▶}
    3 => {#720 ▶}
    4 => {#718 ▶}
  ]
}

पुनश्च: जब मुझे $cat और $subs एक साथ मिलते हैं तो इसका परिणाम 1 तक कम हो जाना चाहिए जो कि सहेजे गए y डेटा पर मेरा सही उत्तर आधार है।

0
mafortis 5 मार्च 2018, 05:53
मुझे लगता है, आपको इन दो प्रश्नों से एक साथ गठबंधन करने के लिए समान परिणामों की आवश्यकता है ताकि आप संघ प्रश्न बना सकें
 – 
Sagar Gautam
5 मार्च 2018, 05:56
माफ करना, समझ में नहीं आया, मतलब?
 – 
mafortis
5 मार्च 2018, 06:00
क्या आप $cat और $prod का नमूना आउटपुट जोड़ सकते हैं?
 – 
Sagar Gautam
5 मार्च 2018, 06:10
ज़रूर।
 – 
mafortis
5 मार्च 2018, 06:12
ऊपर $cat और $prod कहाँ हैं?
 – 
Sagar Gautam
5 मार्च 2018, 06:21

1 उत्तर

सबसे बढ़िया उत्तर

हल किया

मैंने अपने $subs और $prod को नीचे की तरह मिश्रित किया है और यह पूरी तरह से काम कर रहा है:

$prod = DB::table('landing_specifications')->where('landing_id', $landing->id)
    ->join('product_subspecification', function ($keys) {
        $keys->on('product_subspecification.subspecification_id', '=', 'landing_specifications.subspecification_id');
    })
    ->join('products', 'products.id', '=', 'product_subspecification.product_id')
    ->whereIn('products.category_id', $id)
    ->groupby('products.id')
    ->get();
0
mafortis 5 मार्च 2018, 07:28