Вот мой код:
$model->free = true;
echo $form->field($model, 'free', ['inputOptions'=>['class'=>'form-control input-lg ']])->checkbox();
Я хочу, чтобы, если пользователь не снял флажок, значение по умолчанию должно быть отправлено на сервер, но, к моему удивлению, оно отправляет $ model-> free на сервер, ноль, независимо от того, снимает ли пользователь флажок или оставляет его как есть; Чтобы отправить проверенное значение, пользователь должен снять флажок и проверить, какое напряжение.
Как я могу достичь того, чего хочу?
Пытаться:
echo $form->field($model, 'free', ['inputOptions'=>['class'=>'form-control input-lg ']])->checkbox( [ 'uncheck' => 0 ] );
Для более подробной информации обратитесь к ссылка на сайт.
Вы забыли установить значение атрибута 'value'=>'1'
поставить галочку. Ваш код должен быть таким.
Просмотреть файл
$isCheckedFree = true;
echo $form->field($model, 'free', ['inputOptions'=>['class'=>'form-control input-lg ']])->checkbox(['checked'=>$isCheckedFree,'value'=>'1']);
Код контроллера
if(isset($model->free) && $model->free=!null){
$free = "Y"; // You can set your value
}else{
$free = "N"; // You can set your value
}
В моем случае uncheck = false
работает отлично:
echo $form->field($model, 'free', ['inputOptions'=>['class'=>'form-control input-lg ']])->checkbox(['uncheck' => false]);
Как упоминал Чинмай, более подробно Вот