2014-11-02 14 views
5

संभालने मैं मेजlaravel - वाक्पटु - संबंधित मॉडल विशिष्ट स्तंभ का योग प्राप्त

आदेश

क्षेत्रों के साथ

आईडी, userId, राशि, वर्णन

है

और तालिका

उपयोगकर्ता

विभिन्न क्षेत्रों

साथ

कैसे अगर मैं सभी उपयोगकर्ताओं (अपने सभी क्षेत्रों के साथ) है कि से संबंधित आदेशों की "राशि" स्तंभ का योग हो और भी छड़ी उपयोगकर्ता?

संभालने मेरे पास है:

उपयोगकर्ता: {आईडी: 15, firstName: जिम, lastName: मॉरिसन, लिंग: पुरुष}

और

आदेश: { आईडी: 1, उपयोगकर्ता आईडी: 15, राशि: 10, विवरण: "ऑर्डर xxx"},

ऑर्डर: {आईडी: 3, उपयोगकर्ता आईडी: 15, राशि: 40, विवरण: "ऑर्डर yyy"}

मैं प्राप्त करना चाहते हैं:

उपयोगकर्ता: {आईडी: 15, firstName: जिम, lastName: मॉरिसन, लिंग: पुरुष, orderAmount: 50}

बेशक मुझे का foreach स्टेटमेंट से बचना चाहते हैं।

मैं अपने उपयोगकर्ता मॉडल

public function userOrder(){ 
    return $this->hasMany('Order', 'userId'); 
} 

पर इस setted किया है और मैं इस tryed है:

return $this->hasMany('Order', 'userId')->sum('amount'); 
किसी भी भाग्य के बिना

...

उत्तर

8

कुछ thaughts और उम्मीद है कि एक जवाब आपके प्रश्न पर:

मैं उपयोगकर्ताओं को उपयोगकर्ता तालिका का नाम बदलकर लार्वेल कॉन्वेंटियो एनएस। http://laravel.com/docs/4.2/eloquent#basic-usage

मैं उपयोगकर्ता मॉडल आदेश

public function orders() 
{ 
    return $this->hasMany('Order', 'userId'); 
} 

में विधि का नाम एक उपयोगकर्ता, उसके आदेशों और राशि बाद में उसके आदेशों राशि मूल्यों को क्वेरी करने के लिए होगा:

$userdata = User::with('orders')->where('userId', 15)->first(); 
$sum = $userdata[ 'orders' ]->sum('amount'); 
+0

उत्तर के लिए धन्यवाद। मैं अपनी टेबल को परिभाषित करने में बहुत अस्पष्ट था ... बेशक इसे "उपयोगकर्ता" कहा जाता है और मेरे मॉडल को "उपयोगकर्ता" कहा जाता है, लेकिन मुझे डर है कि आपका समाधान वह समाधान नहीं है जिसे मैं ढूंढ रहा हूं ... एक नज़र डालें [ यह]: http: //stackoverflow.com/questions/25655388/get-max-value-for-each-related-model-with-eloquent-in-laravel और देखें कि कैसे जैरेक Tkaczyk "नवीनतम()" के साथ मेरी समस्या हल फ़ंक्शन ... मैं उस तरह की तलाश कर रहा हूं – ciccioassenza

+0

आह ओह ... मैं नहीं देखता कि आपके प्रश्न में, हे, मुझे खुशी है कि आपको अपना समाधान मिला :-) – Kristo

+0

मुझे माफ़ कर दो, मेरी अंग्रेजी खराब है और मेरे पास है इस मुद्दे को समझाने में परेशानी ... मैंने जो लिंक पोस्ट किया है वह एक और सवाल से संबंधित है जहां मैं यह इंगित करना चाहता था कि उस समाधान के साथ मैं उन लोगों के बीच केवल अंतिम संदेश लेने में सक्षम था, बिना किसी प्रस्ताव के। समस्या बनी रहती है :( – ciccioassenza

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