2016-08-24 55 views
2

刪除類下面是我的代碼生成Yii框架2.如何從DIV父母的CheckBoxList()在Yii框架2

<?php $form = ActiveForm::begin(); ?> 
    <?php echo $form->field($model, 'my_property')->checkboxList(['A', 'B', 'C']) ?> 
<?php ActiveForm::end(); ?> 

這會產生後續的HTML複選框列表複選框列表。

<div class="form-group"> 
    <label class="control-label" for="my_property">My Property</label> 
    <input type="hidden" name="Model[my_property]" value=""> 
    <div id="model-my_property"> 
     <div class="checkbox"> 
      <label> 
       <input type="checkbox" name="Model[my_property][]" value="0"> A 
      </label> 
     </div> 
     <div class="checkbox"> 
      <label> 
       <input type="checkbox" name="Model[my_property][]" value="1"> B 
      </label> 
     </div> 
     <div class="checkbox"> 
      <label> 
       <input type="checkbox" name="Model[my_property][]" value="2"> C 
      </label> 
     </div> 
    </div> 
    <p class="help-block help-block-error"></p> 
</div> 

我怎樣才能刪除從中直接環繞着<label>標籤divclass="checkbox"?我試過templatecheckboxTemplateinputTemplate,這些我只能碰div

回答

2

我想你使用的是yii\bootstrap\ActiveForm而不是默認的yii\widgets\ActiveForm,因爲有這個元素的樣式。

最簡單的解決方案 - 使用第二個ActiveForm類,使其無風格。

如果你不想改變的ActiveForm類:

$form 
->field($model, 'my_property') 
->checkboxList(
    ['A', 'B', 'C'], 
    ['item' => function ($index, $label, $name, $checked, $value) { 
     return '<div>' 
       . '<label>' 
       . '<input type="checkbox" name="' . $name . '" value="' . $value . '"> ' 
       . $label 
       . '</label>' 
       . '</div>'; 
    }] 
);