Yii2 ActiveForm チェックボックス コントロールの「チェック済み」状態の簡単な解決策を探していますが、それを設定する方法が見つかりません。ドキュメントに例が見つかりません。
レンダリングコードを操作しようとしました
<?= $form->field($model, 'name')->checkbox()->label('Hi'); ?>
しかし、ActiveForm自体を変更する必要があるようです。デフォルトでチェックボックスをオンにする方法は?
Yii2 ActiveForm チェックボックス コントロールの「チェック済み」状態の簡単な解決策を探していますが、それを設定する方法が見つかりません。ドキュメントに例が見つかりません。
レンダリングコードを操作しようとしました
<?= $form->field($model, 'name')->checkbox()->label('Hi'); ?>
しかし、ActiveForm自体を変更する必要があるようです。デフォルトでチェックボックスをオンにする方法は?
わかりました、しばらくデバッグして解決策を見つけました。それは、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'); ?>
そのような些細な機能に関しては、複雑すぎると思います。
作成時にチェックボックスをオンにしたい場合は、ビューで次のようにします。
if ($model->isNewRecord) {
$model->status = TRUE;
}
エレガントなソリューションではないことはわかっていますが、機能しています。