Как предварительно выбрать / проверить переключатель по умолчанию в Yii2 RadioList ()?

Я хочу, чтобы переключатель был выбран в моей форме.

 <?= $form->field($model, 'config')->radioList(['1'=>'Automatic Entry',2=>'Manual Entry'])
     ->label('Barcode/Book No Generation'); ?>

4 ответов


предварительно выбранные значения берутся из $model->config. Это означает, что вы должны установить этот атрибут со значением, которое вы хотите предварительно :

$model->config = '1';
$form->field($model, 'config')->radioList([
    '1' => 'Automatic Entry',
    '2' => 'Manual Entry',
]);

соответствующий документ для этого находится в ActiveForm класса.


Если вы хотите использовать значение по умолчанию радио, вы можете использовать следующий код:

<?php $model->isNewRecord==1 ? $model->config=1:$model->config;?>
<?= $form->field($model, 'config')->radioList(
    [
         '1'=>'Automatic Entry',
         '2'=>'Manual Entry'
    ])->label('Barcode/Book No Generation'); 
?>

вы должны установить атрибут 'config'.

$model->config = 1;

при загрузке формы будет выбран первый переключатель.

tarleb прав.


длинный выстрел в темноте, так как я не очень хорошо знаком с yii2, но на основе документации вы должны быть в состоянии сделать что-то вроде этого.

$form->field($model, 'config')->radioList([
          '1'=>'Automatic Entry',
          '2'=>'Manual Entry',
    ], [
        'item' => function ($index, $label, $name, $checked, $value) {
            return Html::radio($name, $checked, ['value' => $value]);
        },
    ]);
// [...]
ActiveForm::end();