yii2 ActiveForm 中默认选中的复选框

check box checked by default in yii2 ActiveForm

我有 ActiveForm 复选框:

<?= $form->field($model, 'is_necessary')->checkbox(['uncheck'=> 0]) ?>;

我想让它默认选中,当我选中时,它的值变为 1,当取消选中时 - 0。我可以在没有任何 javascript 的情况下实现吗?

我试过了:

<?= $form->field($model, 'is_necessary')->checkbox(['uncheck'=> 0, 'value'=>false]) ?>;

选项 'value'=>false 使我的复选框默认选中,但随后在控制器中我收到 NULL 也没有 10.

只需在代码

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

以上代码运行良好。但你应该在

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

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

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

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

并且您不需要按照 DOCS

通过 'uncheck'=> 0,

uncheck : string, the value associated with the unchecked state of the radio button. If not set, it will take the default value 0. This method will render a hidden input so that if the radio button is not checked and is submitted, the value of this attribute will still be submitted to the server via the hidden input. If you do not want any hidden input, you should explicitly set this option as null.