2016-07-03 16 views
20

में विशिष्ट स्तंभ का चयन करने की सुविधा देता है कहते हैं कि मैं तालिका में 7 कॉलम है, और मुझे उनमें से केवल दो, इसकैसे laravel वाक्पटु

SELECT `name`,`surname` FROM `table` WHERE `id` = '1'; 

की तरह कुछ laravel वाक्पटु मॉडल में चयन करना चाहते हैं यह हो सकता है इस

की तरह दिखता है
Table::where('id', 1)->get(); 

लेकिन मुझे लगता है कि यह अभिव्यक्ति सभी कॉलम का चयन करेगी जहां आईडी 1 बराबर होगी, और मुझे केवल दो कॉलम (नाम, उपनाम) चाहिए। केवल दो कॉलम का चयन कैसे करें?

उत्तर

38

आप इस तरह यह कर सकते हैं:

Table::select('name','surname')->where('id', 1)->get(); 
+0

मान लीजिए कि मैं हर क्षेत्र को चुनना चाहता हूं कि मैं यह कैसे कर सकता हूं –

+0

सबसे पहले, जब आप सवाल करते हैं, तो एक से पूछें। और आपके मामले के लिए - उस व्यक्ति के बजाय बस सभी कॉलम का उल्लेख करें जिसमें आप शामिल नहीं करना चाहते हैं। इट्स दैट ईजी। –

+0

सभी स्तंभों का उल्लेख किए बिना ऐसा करने के लिए कोई और तरीका नहीं है –

2

आप Table::select ('name', 'surname')->where ('id', 1)->get() उपयोग कर सकते हैं।

ध्यान रखें कि केवल कुछ फ़ील्ड के लिए चयन करते समय, आपको एक और प्रश्न बनाना होगा यदि आप बाद में अनुरोध में उन अन्य क्षेत्रों तक पहुंचने का अंत कर लेते हैं (जो स्पष्ट हो सकता है, केवल उस चेतावनी को शामिल करना चाहते थे)। आईडी फ़ील्ड समेत आमतौर पर एक अच्छा विचार होता है, इसलिए लार्वेल जानता है कि मॉडल उदाहरण में आपके द्वारा किए गए किसी भी अपडेट को वापस कैसे लिखना है।

15
Table::where('id', 1)->get(['name','surname']); 
5

भी Model::all(['id'])->toArray() यह केवल आईडी को सरणी के रूप में लाएगा।

1

आपको पहले मॉडल बनाने की आवश्यकता है, जो उस तालिका का प्रतिनिधित्व करती है और फिर केवल 2 फ़ील्ड के डेटा लाने के लिए नीचे दिए गए वाद्य तरीके का उपयोग करती है।

Model::where('id', 1) 
     ->pluck('name', 'surname') 
     ->all(); 
9

सभी() विधि का उपयोग करके हम नीचे दिखाए गए तालिका से विशेष कॉलम चुन सकते हैं।

ModelName::all('column1', 'column2', 'column3'); 

नोट: Laravel 5.4

0

क्वेरी इस तरह होगा: तालिका ('तालिका') -> का चयन करें ('नाम', 'उपनाम') -> जहां ('आईडी' , 1) -> मिल();

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