2014-07-22 14 views
11

समूह के साथ योग प्राप्त करने के लिए भाषण/धाराप्रवाह क्वेरी की आवश्यकता है।लैरवेल एलोक्वेंट: समूह के साथ योग

अब तक मैं कोशिश की है:

$this->data['no_of_pages'] = Document::sum('no_of_pages') 
           ->groupBy('users_editor_id'); 

कौन सा बिल्कुल मुझे क्योंकि तथ्य यह है कि राशि() पहले से ही क्वेरी निष्पादित और समय grouBy() लागू किया जाता है द्वारा तैयार परिणाम होगा की call to member function groupBy() on non-object देता है। तो क्या कोई मुझे मार्गदर्शन कर सकता है?

उत्तर

23
Document::groupBy('users_editor_id') 
    ->selectRaw('sum(no_of_pages) as sum, users_editor_id') 
    ->pluck('sum','users_editor_id'); 

    // originally lists(), which was deprecated in favour of pluck in 5.2 
    // and dropped completely in 5.3 
    // ->lists('sum','users_editor_id'); 


// returns array like this: 
array(
    users_editor_id => sum, 
    ... 
) 

या इस तरह से (जो मैं का उपयोग नहीं होता है, क्योंकि यह नहीं होगा वास्तविक ORM परिणाम):

Document::groupBy('users_editor_id') 
    ->selectRaw('*, sum(no_of_pages) as sum') 
    ->get(); 

// returns collection of Document pseudo models with additional sum field 
+3

नोट: '-> सूचियां()' नाम दिया गया है '-> लारवेल 5.2 के बाद से() '। – Fx32

+1

@ Fx32 सच, धन्यवाद। प्रासंगिक अद्यतन जोड़ा गया –

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