未在yii2中选中复选框

时间:2015-05-07 09:48:15

标签: php html yii2

我正在使用yii2,我想检查我的复选框,

<?= $form->field($model, 'is_email_alerts')->checkbox(['label'=>'','checked'=>true,'uncheck'=>'0','value'=>'1']); ?>

但它不起作用

1 个答案:

答案 0 :(得分:3)

是否选中复选框仅由属性值决定。

来自ActiveField::checkbox()

的API页面
  

此方法将生成&#34;已检查&#34;根据模型属性值

标记属性

因此只需添加

$model->is_email_alerts = true;

在您的控制器中或您在视图中此调用之前的任何位置。

只是为了验证这是实际案例:来自BaseHtml::activeCheckbox()

的来源
public static function activeCheckbox($model, $attribute, $options = [])
{
    ...
    $value = static::getAttributeValue($model, $attribute);
    ...
    $checked = "$value" === "{$options['value']}";
    ...
    return static::checkbox($name, $checked, $options);
}

设置checked的{​​{3}}中唯一的一行是

public static function checkbox($name, $checked = false, $options = [])
{
    $options['checked'] = (bool) $checked;