我有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
,也未收到NULL
或1
。
答案 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,
uncheck
:string
,与未经检查的状态相关联的值 单选按钮。如果未设置,则将采用默认值0
。这个 方法将呈现隐藏的输入,以便如果单选按钮不是 检查并提交,此属性的值仍将是 通过隐藏输入提交给服务器。如果你不想要任何 隐藏输入,您应该将此选项显式设置为null。