2013-07-09 15 views
117

सरल प्रश्न का उपयोग कर - कैसे मैं 'आईडी' Laravel में उतरते द्वारा ऑर्डर करुं 4.Laravel 4: कैसे "आदेश से" सुवक्ता ORM

मेरी नियंत्रक की प्रासंगिकता का इस तरह दिखता है:

$posts = $this->post->all() 

मैं समझता हूँ के रूप में आप इस लाइन का उपयोग करें:

->orderBy('id', 'DESC'); 

लेकिन यह कैसे करता है कि मेरे ऊपर कोड के साथ में फिट?

+7

आप की तरह कुछ भी नहीं किया जा सका: $ पोस्ट = $ यह-> पोस्ट-> ऑर्डरबी ('आईडी', 'डीईएससी') -> प्राप्त करें(); –

+0

हाँ, क्षमा करें मुझे वाक्यविन्यास में परेशानी हो रही थी। धन्यवाद - अगर आप इसे उत्तर के रूप में पोस्ट करते हैं तो मैं खुशी से इसे सही उत्तर के रूप में चुनूंगा। – Josh

+0

पूछने के लिए धन्यवाद। वही था जो मैं खोज रहा था। – Foxinni

उत्तर

204

आप एक मॉडल (निर्भरता इंजेक्शन के बिना) के रूप में पद का उपयोग कर रहे हैं, तो आप भी कर सकते हैं:

$posts = Post::orderBy('id', 'DESC')->get(); 
+1

संस्करण 4 का उपयोग करते समय जाने का यह तरीका है! – Ms01

+1

फिर भी 5.1 –

+1

में काम करता है भी 5.3 –

24

इस प्रकार मैं इसके बारे में जाऊंगा।

$posts = $this->post->orderBy('id', 'DESC')->get(); 
46

आप सुवक्ता ORM उपयोग कर रहे हैं आप स्कोप उपयोग करने पर विचार करना चाहिए। यह आपके तर्क को मॉडल में रखेगा जहां यह संबंधित है।

तो, मॉडल में आप होगा:

public function scopeIdDescending($query) 
{ 
     return $query->orderBy('id','DESC'); 
} 

और मॉडल के बाहर आप होगा:

$posts = Post::idDescending()->get(); 

और जानकारी: http://laravel.com/docs/eloquent#query-scopes

+0

है जहां क्वेरी 'idDescending को पास किए जाने में ठीक काम कर रहा काम कर()' अंतिम पंक्ति '$ पदों = पोस्ट :: idDescending() में - > प्राप्त करें(); ' –

+3

लार्वा स्वचालित रूप से पारदर्शी है। – Puzbie

+0

मैं इस उत्तर के साथ जाऊंगा। यहां बताया गया है कि मैं इसे अपने रोज़गार के काम पर सामान्य रूप से कैसे करता हूं: मोड के भीतर: '' 'सार्वजनिक फ़ंक्शन स्कोप सबसे नवीनतम ($ क्वेरी) { $ query-> orderBy ('create_at') -> get(); } '' और नियंत्रक के भीतर: '' 'वापसी दृश्य ('project.view') -> के साथ (['परियोजनाएं'>> परियोजना :: नवीनतम()]);' '' –

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