在yii2 ActiveForm中默认选中复选框

时间:2018-03-22 17:14:37

标签: php yii2 active-form

我有RoleController复选框:

ActiveForm

我想在默认情况下进行检查,当我检查时,它的值变为1,当取消选中时 - 0.我可以在没有任何<?= $form->field($model, 'is_necessary')->checkbox(['uncheck'=> 0]) ?>; 的情况下实现此目的吗?

我试过了:

javascript

选项<?= $form->field($model, 'is_necessary')->checkbox(['uncheck'=> 0, 'value'=>false]) ?>; 默认选中了我的复选框,但随后在控制器中我收到了'value'=>false,也未收到NULL1

2 个答案:

答案 0 :(得分:2)

只需在代码

下添加您的控制器或视图(不推荐)
$model->is_necessary = true;

上面的代码工作正常。但是你应该在

之前添加这段代码
$model->load(Yii::$app->request->post)

方法或将后期数据分配给您的模型。否则,您的复选框将随时被选中;

答案 1 :(得分:1)

最好的方法是覆盖模型中的init()

public function init() {
    parent::init ();
    $this->is_necessary  = 1;
}

并且您不需要根据DOCS

传递'uncheck'=> 0,
  

uncheckstring,与未经检查的状态相关联的值   单选按钮。如果未设置,则将采用默认值0。这个   方法将呈现隐藏的输入,以便如果单选按钮不是   检查并提交,此属性的值仍将是   通过隐藏输入提交给服务器。如果你不想要任何   隐藏输入,您应该将此选项显式设置为null。