4

Yii2 ActiveForm チェックボックス コントロールの「チェック済み」状態の簡単な解決策を探していますが、それを設定する方法が見つかりません。ドキュメントに例が見つかりません。

レンダリングコードを操作しようとしました

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

しかし、ActiveForm自体を変更する必要があるようです。デフォルトでチェックボックスをオンにする方法は?

4

3 に答える 3

2

わかりました、しばらくデバッグして解決策を見つけました。それは、activeCheckbox() 関数の 1359 行目の BaseHtml.php の中身にあります。

$checked = "$value" === "{$options['value']}";

モデル変数のデフォルト値をチェックします。

class SomeForm extends Model
{
    public $name = true;

そして、同じ値 (同じ型) を 'value' オプションに割り当てる必要があります。

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

そのような些細な機能に関しては、複雑すぎると思います。

于 2015-05-06T23:46:14.373 に答える
1

作成時にチェックボックスをオンにしたい場合は、ビューで次のようにします。

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

エレガントなソリューションではないことはわかっていますが、機能しています。

于 2016-03-01T20:56:46.507 に答える