2013-05-26 21 views
6

क्या लैरवेल एलोक्वेंट में ग्रुपबी क्लॉज के साथ फ़ंक्शन का उपयोग किया जा सकता है? यदि मेरे पास चयन क्लॉज का उपयोग करके चुनने के लिए विशिष्ट आइटम हैं तो क्या यह किसी भी उद्देश्य की सेवा करता है?क्या लैरवेल एलोक्वेंट में ग्रुपबी क्लॉज के साथ फ़ंक्शन का उपयोग किया जा सकता है?

के बाद कि मैं वर्तमान में

Order::with('Campaign') 
      ->where('isapproved','=','Y') 
      ->groupBy('campaign_id') 
      ->orderBy(DB::raw('COUNT(id)','desc')) 
      ->get(array(DB::raw('COUNT(id) as totalsales'))); 

order तालिका एक स्तंभ नाम campaign_id जो campaigns नामित तालिका belongsTo गया है क्वेरी है। मैं प्रत्येक अभियान के खिलाफ ऑर्डर टेबल से बिक्री की कुल गणना प्राप्त करना चाहता हूं और निम्न तरीके से दिखाना चाहता हूं।

Total Sales  Campaign 
------------------------- 
    200   Campaign1 
    500   Campaign2 
    300   Campaign3 

क्या मुझे एक विशिष्ट चयन करना होगा या क्या मैं उपर्युक्त क्वेरी से अभियान तालिका के मूल्यों तक पहुंच सकता हूं?

उत्तर

7

यदि साथ फ़ंक्शन पर निर्दिष्ट मॉडल द्वारा आवश्यक संदर्भित कॉलम SELECT खंड में पुनर्प्राप्त किया गया है, तो With फ़ंक्शन को उपर्युक्त क्वेरी द्वारा विचाराधीन माना जाता है। सुधारा क्वेरी

$groupedSalesCampaign = Order::with('Campaign') 
      ->where('isapproved','=','Y') 
      ->groupBy('campaign_id') 
      ->orderBy(DB::raw('COUNT(id)','desc')) 
      ->get(array(DB::raw('COUNT(id) as totalsales'),'campaign_id')); 

इस तरह अभियान जानकारी

foreach($groupedSalesCampaign as $campaign) 
{ 
     Log::info($campaign->foo->bar); 
} 

संपादित का उपयोग कर प्राप्त किया जा सकता है किया जाएगा।

संबंधित मुद्दे