Lad*_*v M 4 php laravel laravel-4
我正在使用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() }}
Run Code Online (Sandbox Code Playgroud)
有没有办法使它工作?
我最终在我的控制器中处理了这个问题,因为@Ladislav Maxa在对@Antonio Carlos Ribeiro的评论中说数据库永远不会更新.这是因为没有使用表单提交空复选框,因此没有'unchecked'值可用于更新数据库.
我使用的解决方案是检查get对象中是否存在字段.如果它在那里检查框.
$notify_rate = Input::get('notify_rate') ? 1 : 0;
$data['notify_rate'] = $notify_rate;
Run Code Online (Sandbox Code Playgroud)
我之前完成此操作的另一种方法是在复选框之前创建一个名称相同且值为0的文本输入.如果未选中复选框,则提交文本输入值,如果勾选了复选框,则使用其值.
<input name="notify_rate" type="text" value="0">
<input name="notify_rate" type="checkbox" value="1">
Run Code Online (Sandbox Code Playgroud)
这可能不是有效的HTML,我更喜欢处理这个服务器端.