2013-07-28 10 views
8

मैं समझता हूँ कि आप इस तरह से एक का चयन करें बयान के मूल्यों भेज सकते हैं एक से मूल्यों के साथ चयन करें:Laravel: कैसे एक ब्लेड पॉप्युलेट करने के लिए जहां बयान

नियंत्रक:

$client = Client::lists('name', 'id'); 
return View::make('index', compact('client')); 

और की तरह मेरे विचार में इस पॉप्युलेट इसलिए:

दृश्य:

{{ Form::select('client_id', $client, Input::old('client_id')) }} 

लेकिन यह कैसे मैं पॉप्युलेट करते ही क्लोरीन से रिकॉर्ड ients जहां group_id = 1 उदाहरण के लिए।

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

$client = Client::lists('name', 'id')->where('group_id', 1)->get(); 

और

$client = Client::lists('name', 'id')->where('group_id','=', 1)->get(); 

लेकिन यह उस तरह काम करने के लिए प्रतीत नहीं होता है और मुझे एक गैर पर एक सदस्य समारोह जहां() पर की गई कॉल त्रुटि "देता है ऑब्जेक्ट "

इसे कैसे काम करना है इस पर कोई विचार?

उत्तर

8

मैं एक जवाब है कि मेरे लिए काम किया पाया :

{{ Form::select('client_id', $client, Input::old('client_id')) }} 

@KyleK, मदद करने के लिए धन्यवाद।

+1

नाम से सीधे तालिका को कॉल करने का कोई बुरा अभ्यास नहीं है? – Carlo

+0

हाँ, शायद यहां मॉडल का उपयोग करना चाहिए। – jonlink

+0

इसके अलावा 'सूचियां() 'अब बहिष्कृत है। एड्रियन का जवाब बेहतर है। – jonlink

1

सुनिश्चित नहीं हैं कि अगर यह कोई गलती है या नहीं, लेकिन आप ठीक ढंग से retrieiving नहीं कर रहे हैं,

यह पंक्ति होना चाहिए ...

$client = Client::lists('name', 'id')->where('group_id','=', 1)->get(); 

इसके अलावा ....

कभी कभी जब सूचियों की सूची मिलती है, तो आपको मॉडल मिलेंगे, और उन्हें पास करना आसान होगा, लेकिन कभी-कभी आपको सरणी (धाराप्रवाह, कच्चे आदि) मिलते हैं, और उन मामलों में आपको मैन्युअल रूप से एक्सेस करना होगा, और HTML के साथ फ़ॉर्म बनाना होगा क्योंकि आपको इसे एक्सेस करना होगा अलग ढंग से।

$client = DB::table('clients')->where('group_id', 1)->lists('name'); 
return View::make('index', compact('client')); 
फिर अपने ध्यान में रखते हुए

बस इसे इस तरह ब्लेड फ़ॉर्म टैग के अंदर फोन: जो कुछ इस तरह दिखेगा धाराप्रवाह वाक्पटु के बजाय

का प्रयोग करें,:

+0

हाय, धन्यवाद उत्तर के लिए - मैं इस के साथ एक त्रुटि हो रही है क्या तुम जानते हो क्यों कि हो सकता है "एक सदस्य समारोह जहां() एक गैर वस्तु पर करने के लिए कॉल करें"? यह ऊपर बताए गए लाइन को इंगित कर रहा है। – Josh

+0

@kylek अगर मेरे पास काम नहीं कर रहा है तो आईडी की सरणी है। ('group_id', '=', $ ids) यहां, $ आईडी में [1,2,3,] शामिल हैं। क्या करें? –

9

सूचियां() पिछले

$client = Client::where('group_id','=', 1)->lists('name','id'); 
+0

'सूचियां() 'अब बहिष्कृत है। एड्रियन का जवाब बेहतर है। – jonlink

6

में बुलाया जाना चाहिए यह भी

Client::where('group_id','=', 1)->lists('name'); 
8

नियंत्रक काम करेगा:

$client = Client::where('group_id', 1)->pluck('name', 'id'); 

दृश्य:

{!! Form::select('client_id', $client, Input::old('client_id'), ['class'=> 'form-control']) !!} 

परिणाम:

<select id="client_id" class="form-control" name="client_id"> 
    <option value="1">John</option> 
    <option value="2">Karen</option> 
</select> 
+2

'सूचियों' को बहिष्कृत किया गया है अब 'प्लक' का उपयोग करें – shakee93

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