处理Laravel 4中Input::all()中的复选框


Handle checkboxes in Input::all() in Laravel 4

我想用以下代码更新我的模型:

$feature = Feature::find($id)->update(Input::all());

这适用于除"done"字段之外的所有字段,该字段是表中的布尔值,由编辑表单中的复选框表示

{{ Form::label('done', 'Done?')}}
{{ Form::checkbox('done',1)}}

如何使用update和Input:all()处理复选框?

谢谢。

我找到了这个的解决方法

{{ Form::hidden('done', 0); }}
{{ Form::checkbox('done', 1); }}

我在保存之前进行快速检查。

if(!Input::get('someCheckbox')) $feature->someCheckbox = 0;

我知道这是一个旧方法,但我发现这种方法在填写表单数据时效果最好

$myModel->fill(array_merge(['checkBoxName1'=>'0','checkBoxName2'=>'0'], $request->all()));

或者在OP的情况下,它会是这样的:

 $feature = Feature::find($id)->update(array_merge(['checkBoxName1'=>'0','checkBoxName2'=>'0'],Input::all()));

比起添加隐藏字段,我更喜欢它。