我正在使用 Laravel 4.1,在我的应用程序中我需要显示一个带有预填充复选框的表单。但我尝试使用表单模型绑定来做到这一点,但它不起作用。
{{ Form::model($user, array('route' => 'settings-notify')) }}
<div class="formRow form-horizontal_row">
{{ Form::checkbox('notify_visit', '1') }}
</div>
<div class="formRow form-horizontal_row">
{{ Form::checkbox('notify_rate', '1') }}
</div>
<div class="formSubmit">
{{ Form::submit('Save') }}
</div>
{{ Form::close() }}
有什么办法让它发挥作用吗?
我最终在我的控制器中处理了这个问题,因为正如 @Ladislav Maxa 在他们对 @Antonio Carlos Ribeiro 的评论中所说,数据库永远不会更新。这是因为空复选框不会随表单一起提交,因此没有“未选中”值可用于更新数据库。
我使用的解决方案是检查 get 对象中该字段是否存在。如果存在,则该框已被选中。
$notify_rate = Input::get('notify_rate') ? 1 : 0;
$data['notify_rate'] = $notify_rate;
我之前完成此操作的另一种方法是在复选框之前创建一个具有相同名称且值为 0 的文本输入。如果未选中该复选框,则提交文本输入值;如果选中该复选框,则使用该值。
<input name="notify_rate" type="text" value="0">
<input name="notify_rate" type="checkbox" value="1">
但这可能不是有效的 HTML,我更喜欢处理这个服务器端。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)