Checkbox 处理Laravel4中复选框的最佳方法?

Checkbox 处理Laravel4中复选框的最佳方法?,checkbox,laravel,laravel-4,Checkbox,Laravel,Laravel 4,我开始和Laravel4一起工作,我一直在努力解决一些基本的问题,比如下面这个。除了像下面这样为默认值添加隐藏复选框之外,还有其他方法处理未标记复选框的值吗 <td class="text-center"> {{Form::hidden('status', 0)}} {{Form::checkbox('status')}} </td> {{Form::hidden('status',0)} {{Form::checkbox('status')} 现在

我开始和Laravel4一起工作,我一直在努力解决一些基本的问题,比如下面这个。除了像下面这样为默认值添加隐藏复选框之外,还有其他方法处理未标记复选框的值吗

<td class="text-center">
    {{Form::hidden('status', 0)}}
    {{Form::checkbox('status')}}
</td>

{{Form::hidden('status',0)}
{{Form::checkbox('status')}
现在这对我来说很好,但我想知道是否有更好的方法来处理Controller@update.

编辑:表单上复选框的值在更新操作时由Input::all()处理


感谢您的反馈。

这实际上是HTML的默认行为,与Laravel如何处理输入无关。发件人:

提交表单时,只有“打开”复选框控件才能成功

每个成功的控件都将其控件名与其当前值配对,作为提交表单数据集的一部分

因此,更通用的方法不是更改HTML表单,而是在检索输入时更改行为,例如:

$status = Input::get('status', false);

在FormBuilder类中,checkbox方法具有以下参数

checkbox(string $name, mixed $value = 1, bool $checked = null, array $options = array())
所以你想要:

Form::checkbox('status', 0, false, ['class' => 'form-control']) 

快乐编码

如果您正在执行一个:$input=array_except(input::all(),“_method”);为了获取表单值并将这些值发送到更新,有没有办法从输入中获取所有值,但如果这些值不存在,则设置一些默认值?啊,这是个好问题。最有可能超出我的知识范围,因为我从未遇到过我需要的情况(我总是避免大规模作业)。不过,值得一提的是你刚才在原始问题中所说的。谢谢,你对HTML规范的引用还有其他帮助。谢谢你的回复。这里发生的事情是@Unnawut在下面提到的:提交表单时,只有“开”复选框控件才能成功。因此,如果我设置了您提到的复选框,并且没有选中,即使有默认值,该复选框也不会列在Input::all数组中。哦,是的,在这种情况下,下面回答的unawut将是正确的答案。输入::get('status',false);