2015-10-07 63 views
0

我一直在試圖解決一個問題,但無濟於事,但我相信我會在這裏找到解決方案。我正在使用Kartik 2.0選擇擴展來執行多選。很好,在插入數據庫時​​所有工作都正常,但我無法檢索保存的記錄,以便在選擇字段中選擇顯示。Yii 2.0從數據庫中選擇預選值

//我已經包括卡爾蒂克部件已經

使用卡爾蒂克\小工具\選擇二;

<label>Desired Specialization(s)</label> 
      <?= $form->field($spec, 'id')->label(false)->widget(Select2::classname(), [ 
       'data' => $model->getAllSpecializations(), 
       'options' => ['placeholder' => 'You can choose more than one specialization ...'], 
       'pluginOptions' => [ 
        'allowClear' => true, 
        'multiple' => true 
       ], 
      ]); 

      ?> 
     </div> 

請您的答覆將不勝感激。謝謝

+0

顯示你的模型(專業化)和你的控制器 – scaisEdge

回答

0

經過一番挖掘到代碼中,我發現如何使用Yii選擇二

我的模型顯示選擇的數據庫值成多選擇選項上的方式

public function getCandidateLanguage() 
    { 
     $langValues = (new \yii\db\Query()) 
        ->select('c.language_id AS id, l.lang_name') 
        ->from('candidate_language c ') 
        ->innerJoin('languages l','c.language_id = l.id') 
        ->where('c.candidate_id='.$this->candidate_id) 
        ->orderBy('c.language_id') 
        ->all(); 

      return \yii\helpers\ArrayHelper::map($langValues,'id','lang_name'); 
    } 

我查看 使用kartik \ widgets \ Select2;

<?php 
     //the line below is to fetch the array key of $model->getCandidateLanguage() array 
     $lang->id = array_keys($model->getCandidateLanguage()); // value to initialize 
      echo Select2::widget([ 
       'model' => $lang, 
       'attribute' => 'id', 
       'data' => $model->getAllLanguages(), 

       'options' => ['placeholder' => 'Choose multiple languages'], 
       'pluginOptions' => [ 
        'allowClear' => true, 
        'multiple' => true, 
        'tags' => true, 
       ], 

      ]); 

     ?> 

希望它能幫助面臨同樣問題的人。