在laravel blade

时间:2016-12-11 21:23:06

标签: php laravel laravel-5 blade

我试图制作一个可以重复用于INSERT和UPDATE的表格。我一直坚持填充复选框。我在这里:

<input type="checkbox" id="Paid" value="1" name="Paid" 
{{ (old('Paid') ?? $invoice->Paid ?? false) ? 'checked' : '' }} />

适用于第一次在新记录和更新时加载表单。问题是当用户在编辑记录时取消选中该框,但表单上的其他内容未通过验证。验证失败后加载表单时,将再次检查未选中的框。加载$ invoice-&gt;付费的数据库值,因为old()返回false。

3 个答案:

答案 0 :(得分:1)

您应该能够这样做:

{{ old('Paid', $invoice->Paid) ? 'checked="checked"' : '' }}

只要旧值为true,或者Paid模型的$invoice属性不为null / false,那么它将应用选中的值,否则不会。

答案 1 :(得分:0)

我试了几个小时让这个工作。最后我放弃并安装了LaravelCollective HTML包:

https://laravelcollective.com/docs/5.3/html

此程序包中的表单模型绑定适用于填充上述方案中的复选框。

答案 2 :(得分:0)

一种方法是测试old('_token')的值:

@if (!(old('_token') && $invoice->Paid) || (old('Paid')))
checked
@endif