复选框

$form->field($model, 'hobby')->checkboxList(['0' => '篮球', '1' => '足球', '2' => '羽毛球', '3' => '乒乓球'])

在模板中解析变成

<div class="form-group field-admin-sex">
<p class="help-block help-block-error"></p>
<input name="Admin[hobby]" value="" type="hidden">
<div id="admin-hobby">
<div class="checkbox"><label><input name="Admin[hobby][]" value="0" type="checkbox"> 篮球</label></div>
<div class="checkbox"><label><input name="Admin[hobby][]" value="1" checked="" type="checkbox"> 足球</label></div>
<div class="checkbox"><label><input name="Admin[hobby][]" value="2" type="checkbox"> 羽毛球</label></div>
<div class="checkbox"><label><input name="Admin[hobby][]" value="3" type="checkbox"> 乒乓球</label></div>
</div>
</div>

checkBoxList 自定义样式

  • 方法一
    <?php $model->test=($model->test)?:[1,2,3]?>
    

<?= $form->field($model, 'test', [

'options'=>['class' => 'form-group form-md-checkboxes'],
'template' => '{label}<div class="col-md-9 md-checkbox-inline">{input}</div>{hint}{error}', 

] )->checkBoxList($model->test(), [

'item' => function($index, $label, $name, $checked, $value) {
   //$index    数组键名
   //$label    标签名
   //$name     设置checkbox的name
   //$checked  默认选择
   //$value    值
    $checked=$checked?"checked":"";
    $return = '<div class="md-checkbox">';
    $return .= '<input type="checkbox" id="' . $name . $value . '" name="' . $name . '" value="' . $value . '" class="md-checkbox" '.$checked.'>';
    $return .= '<label for="' . $name . $value . '"><span></span><span class="check"></span><span class="box"></span>' . ucwords($label) . '</label>';
    $return .= '</div>';
    return $return;
}

]) ?>

- 方法二

> item : 在生成每个checkbox表单的时候,都会回调这个函数,如果设置了则使用返回值作为checkbox的表单,否则使用static::checkbox函数来生成每个checkbox表单,函数格式为: function ($index,$label, $name, $checked, $value)

<?php $model->test=($model->test)?:[1,2,3]?>

<?= Html::checkboxList('children', [], $model->test, ['class' => 'col-lg-5',

                        'item' => function ($index, $label, $name, $checked, $value) {
                         //$index    数组键名
                         //$label    标签名
                         //$name     设置checkbox的name
                         //$checked  默认选择
                         //$value    值
                        $checkStr = $checked ? "checked" : "";
                        return '<label><input type="checkbox" style="margin:10px" name="' . $name . '" value="' . $value . '" ' . $checkStr . ' class="class' . $index . '" data-uid="user' . $index . '">' . $label . '</label>';
                    }]); ?>
- 方法三

<?php $model->sex=($model->test)?:[1,2,3]?>

<?= Html::checkboxList('children', [], $model->test, ['class' => 'col-lg-5','itemOptions'=>array('style'=>'margin:10px')]); ?>