2016-01-25 77 views
2

我正在使用以下代碼從數據庫中生成複選框。我需要爲某些選項添加可選的文本框。任何人都可以給我線索添加它嗎?Yii2可選文本框與數據庫中的複選框

$form->field($model_detail, 'DOCUMENT_TYPE_ID') 
     ->checkboxList(
     $listData,array('separator'=>'<BR />') 
     )->label('Select Document(s)'); 
+0

你是什麼意思的可選文本框? –

+0

如果您在複選框中沒有選項,請指定和您一樣,您需要任何日期爲2016年1月26日的文檔,然後指定。 –

+0

所以根據我的理解,如果在愛好的複選框中給出2個選項1)玩遊戲2)聽音樂但我的愛好是**旅行**然後我可以輸入單詞**旅行**在文本框。 我的理解與您的要求相同嗎? –

回答

0

您應該延伸ActiveField和編寫自定義checkboxList方法。它可能看起來像這樣:

class ProjectActiveField extends ActiveField 
{ 
    /** 
    * @inheritdoc 
    */ 
    public function checkboxList($items, $options = []) 
    { 
     $inputs = ''; 
     foreach ($items as $id => $value) { 
      $input = Html::activeCheckbox($this->model, $this->$id, $options); 
      $description = $options['itemDescriptions'][$id]; 
      if ($description) { 
       $input = '<div class="checkbox">' . $description . $input . '</div>'; 
      } 

      $inputs .= $input; 
     } 

     $this->adjustLabelFor($options); 
     $this->parts['{input}'] = $inputs; 

     return $this; 
    } 
} 
+1

這不炒鍋 –