这是我的代码:
$model->free = true;
echo $form->field($model, 'free', ['inputOptions'=>['class'=>'form-control input-lg ']])->checkbox();
我想要的是,如果用户没有取消选中,则必须将默认值发送到服务器,但令我惊讶的是,无论用户取消选中还是将其保留为null,它都会将$ model-> free发送到服务器null是;要发送检查值,用户必须取消选中并检查压力。
我如何实现我的目标?
答案 0 :(得分:0)
尝试:
echo $form->field($model, 'free', ['inputOptions'=>['class'=>'form-control input-lg ']])->checkbox( [ 'uncheck' => 0 ] );
有关详细信息,请参阅link。
答案 1 :(得分: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
}
答案 2 :(得分:0)
就我而言,uncheck = false
可以正常工作:
echo $form->field($model, 'free', ['inputOptions'=>['class'=>'form-control input-lg ']])->checkbox(['uncheck' => false]);
如Chinmay所言,更多详细信息here