php - एलोक्वेंट ओआरएम लार्वा 5 आईडी का एरियर प्राप्त करें




laravel model (4)

आप toArray() all() विधि के बजाय all() विधि का उपयोग कर सकते हैं all() अधिक देखें: लार्वा प्रलेखन )

test::where('id' ,'>' ,0)->pluck('id')->all(); //returns array

यदि आपको एक string की आवश्यकता है, तो आप बिना toArray() अनुलग्नक के उपयोग कर सकते हैं:

test::where('id' ,'>' ,0)->pluck('id'); //returns string

https://code.i-harness.com

मैं एलोक्वेंट ओआरएम लार्वा 5.1 का उपयोग कर रहा हूं, मैं 0 से अधिक आईडी की एक सरणी वापस करना चाहता हूं, मेरा मॉडल जिसे test कहा जाता test

मैंने कोशिश की है :

$test=test::select('id')->where('id' ,'>' ,0)->get()->toarray();

यह वापस लौटा:

Array ( [0] => Array ( [id] => 1 ) [1] => Array ( [id] => 2 ) )

लेकिन मैं परिणाम की तरह सरल सरणी में होना चाहते हैं:

Array ( 1,2 )

आप lists() उपयोग कर सकते हैं lists() :

test::where('id' ,'>' ,0)->lists('id')->toArray();

नोट: यदि आप अपने मॉडल को Studly Case फॉर्मेट, जैसे Test में परिभाषित करते हैं, तो बेहतर है।

आप भी get() कर सकते get() :

test::where('id' ,'>' ,0)->get('id');

अद्यतन: (संस्करणों के लिए = = 5.2)

lists() पद्धति को नए संस्करणों >= 5.2 में चित्रित किया गया था, अब आप इसके बजाय pluck() विधि का उपयोग कर सकते हैं:

test::where('id' ,'>' ,0)->pluck('id')->toArray();

नोट: यदि आपको एक स्ट्रिंग की आवश्यकता है, उदाहरण के लिए एक ब्लेड में , तो आप ऐरे () भाग के बिना फ़ंक्शन का उपयोग कर सकते हैं, जैसे:

test::where('id' ,'>' ,0)->pluck('id');

इसका सही उत्तर विधि lists , यह इस तरह से बहुत सरल है:

$test=test::select('id')->where('id' ,'>' ,0)->lists('id');

सादर!


एक Collection , आप इसे कर सकते हैं एक और तरीका होगा:

$collection->pluck('id')->toArray()

यह एक अनुक्रमित सरणी whereIn() , whereIn() एक whereIn() क्वेरी में whereIn() द्वारा पूरी तरह से प्रयोग करने योग्य है।







laravel-5.1