我试图制作一个可以重复用于INSERT和UPDATE的表格。我一直坚持填充复选框。我在这里:
<input type="checkbox" id="Paid" value="1" name="Paid"
{{ (old('Paid') ?? $invoice->Paid ?? false) ? 'checked' : '' }} />
适用于第一次在新记录和更新时加载表单。问题是当用户在编辑记录时取消选中该框,但表单上的其他内容未通过验证。验证失败后加载表单时,将再次检查未选中的框。加载$ invoice-&gt;付费的数据库值,因为old()返回false。
答案 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