如何从 Yii 框架 2 的 checkboxList() 中的 DIV parents 中删除 class

How to remove class from the DIV parents from checkboxList() in Yii framework 2

下面是我在 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> 标签的 div 中删除 class="checkbox"?我试过templatecheckboxTemplateinputTemplate,用这些我只能触摸外面的div

我猜你使用的是 yii\bootstrap\ActiveForm 而不是默认的 yii\widgets\ActiveForm 因为这个元素有样式。

最简单的解决方案 - 使用第二个 ActiveForm class 这样它就没有样式了。

如果您不想更改 ActiveForm class:

$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>';
    }]
);