Checkbox 如何设置Yii2';是否将ActiveForm复选框设置为选中状态?

Checkbox 如何设置Yii2';是否将ActiveForm复选框设置为选中状态?,checkbox,yii2,active-form,Checkbox,Yii2,Active Form,我正在为yii2activeformcheckbox控件寻找一个“checked”状态的简单解决方案,但我找不到如何设置它的解决方案。我在文档中找不到任何例子 我尝试过处理渲染代码 <?= $form->field($model, 'name')->checkbox()->label('Hi'); ?> 但我似乎需要修改ActiveForm本身。如何在默认情况下选中复选框?好的,我已经排除了一些bug并找到了一个解决方案,它位于activeCheckbox()

我正在为yii2activeformcheckbox控件寻找一个“checked”状态的简单解决方案,但我找不到如何设置它的解决方案。我在文档中找不到任何例子

我尝试过处理渲染代码

<?= $form->field($model, 'name')->checkbox()->label('Hi'); ?>


但我似乎需要修改ActiveForm本身。如何在默认情况下选中复选框?

好的,我已经排除了一些bug并找到了一个解决方案,它位于activeCheckbox()函数第1359行的BaseHtml.php的核心

它检查模型变量的默认值:

class SomeForm extends Model
{
    public $name = true;
并且必须为中的“值”选项指定相同的值(具有相同的类型)

<?= $form->field($model, 'name')->checkbox(['value' => true])->label('Hi'); ?>


我想说,对于这样一个微不足道的功能,它过于复杂了。

请参见,在我的代码中,状态是0或1

所以,对于选中的复选框,我声明了


如果要在“创建”上选中复选框,请在视图中执行以下操作:

if ($model->isNewRecord) {
    $model->status = TRUE;
}

我知道这不是一个优雅的解决方案,但它正在发挥作用。

请告诉我否决投票的原因。那个投了否决票的人,你试过你的系统吗?。有些人这么做只是为了否决投票。如果你认为这个答案没有用,请给出理由/建议。不要简单地说是DownvoteI我同意你的看法,这个答案是唯一一个在表单加载时设置复选框的答案,
+1
为你,威胁为downvoter****
<?php $model->status = 1; ?>
<?= $form->field($model, 'status')->checkbox()->label('Hi'); ?>
//Your Code

<?php $model->name = 'Java'; ?>
<?= $form->field($model, 'name')->checkbox()->label('Hi'); ?>
if ($model->isNewRecord) {
    $model->status = TRUE;
}