2016-02-15 10 views
13

यहाँ मैं स्पष्ट रूप से मेरी समस्या समझाने की तरह बहु का चयन ड्रापडाउन का उपयोग कर प्रदर्शन करने के लिए,कैसे फ़िल्टर Yii2 GridView में

बहु चयन लटकती फिल्टर प्रदर्शन करने के लिए कोशिश कर रहा हूँ, इस एकाधिक चयन करें फिल्टर से पहले मैं एक बुनियादी फिल्टर की है।

का उपयोग कर रहा हूँ कार्तिक-वी लटकती विस्तार

search.php

<?php 
    $status = ArrayHelper::map(Status::find()->all(),'id','status'); 
    echo $form->field($model, 'status')->widget(Select2::classname(), [ 
          'data' => $status, 
          'language' => 'en', 
          'options' => [ 
          'placeholder' => 'Select Status..', 
          'multiple' => true 
          ], 
          'pluginOptions' => [ 
           'allowClear' => true 
          ], 
        ]); 
?> 

claimsSearch.php

$query->andFilterWhere([ 
      'status' => $this->status 
     ]); 

अगर मैं ऊपर नीचे दिए गए कोड के रूप में त्रुटि हो रही है कोशिश

Array to string conversion 

लेकिन यहां मुझे नहीं पता कि फ़िल्टर कोड कैसे लिखना है।

अद्यतन SearchView: search view snapshot

+0

$ this-> स्थिति से आता है कहाँ? – aalgogiver

+0

search.php – Nodemon

उत्तर

4

प्रयास करें। आप इस तरह के क्षेत्र स्वचालित तरीके से फ़िल्टर नहीं कर सकते हैं। या आप ऊपर कस्टम फ़िल्टर मूल्य स्थिति कॉलम के लिए, इस तरह (आप इस दिशा में खुदाई कर सकते हैं) सेट करना होगा:

How can I use a simple Dropdown list in the search box of GridView::widget, Yii2? इस लिंक का प्रयास करें

+0

में बहुत सारी त्रुटि पूरी तरह से काम कर रही है ... – Nodemon

0

आपको लगता है कि विजेट में मॉडल बुला नहीं कर रहे हैं। आप shoudl इस तरह उपयोग करते हैं:

echo $form->field($mySearchModel, 'state_10')->widget(Select2::classname(), [ 
    'data' => $status, 
    'options' => [ 
     'placeholder' => 'Select Status ...', 
     'multiple' => true 
    ], 
]); 

और आपका चयन यह शायद एक सरणी लौट रहा है।

$query->andFilterWhere([ 
    'status' => ('in', 'status', $this->status) 
]); 

प्रश्नों here के अधिक उदाहरण देखें: तो, आपके खोज की तरह कुछ होगा।

यदि वह समाधान काम नहीं करता है, तो मैं आपके दृश्य में var_dump($yourModel->status) करने के लिए आपको धन्यवाद दूंगा, बस यह देखने के लिए कि क्या लौट रहा है।

+0

में ऊपर देखें त्रुटि प्राप्त हो रहा है और उसी समय यह ग्रिडव्यू (इंडेक्स पेज पर) में कोई डेटा नहीं दिखा रहा है – Nodemon

+0

लेकिन क्या त्रुटि? – Clyff

+0

ग्रिडव्यू – Nodemon

0

$ यह-> स्थिति सरणी है?

तो, आप EmployeeSearch नियमों से 'स्थिति' को हटाना उपयोग कर सकते हैं

<?php 
$status = ArrayHelper::map(Status::::model()->findAllByAttributes(array("id"=>$status));(),'id','status'); 
echo $form->field($model, 'status')->widget(Select2::classname(), [ 
          'data' => $status, 
          'language' => 'en', 
          'options' => [ 
          'placeholder' => 'Select Status..', 
          'multiple' => true 
          ], 
          'pluginOptions' => [ 
           'allowClear' => true 
          ], 
        ]); 
?> 
+0

अपडेट किया है, कृपया अपना उत्तर जांचें, – Nodemon