编辑有关错误旧值的复选框的默认值的表单问题
Edit form issue with default value for checkbox regarding old value on error
我有一个问题,似乎是 Laravel 复选框 old()
值的错误。我有一个代码,我想在编辑时填写默认值,如果表单提交失败,我想在表单中填写 old()
值。
问题是当原始数据库值为 TRUE 而新表单提交的复选框为 false 时。 Laravel old()
未在提交复选框时捕获 FALSE 值并填充为 TRUE 的原始值。
<input name="active" type="checkbox"
@if( old('active', $voucher->active ?? false) ) checked='checked' @endif
>
如果提交为FALSE,则回退到默认值。我发现的所有解决方案都是错误的。我该如何解决?
我觉得应该是
<input name="active" type="checkbox" value="{{old('active', $voucher->active ?? 0)}}" {{isset($voucher->active)?'checked':''}}>
仍然想检查它是否为真或 1 或 0 你可以像下面这样检查
<input name="active" type="checkbox" value="{{old('active', $voucher->active ?? 0)}}" {{(isset($voucher->active)&&$voucher->active==true)?'checked':''}}>
根据me.for,您的要求复选框不合适。最好选择单选按钮。这样用户可以在活动时选择 true 或 false
所以解决方案是测试另一个字段,如@old('submit')
<input name="active" type="checkbox"
@if( old('active') || (!old('submit') && $voucher->active) ) checked='checked' @endif
>
通过提交发送。它似乎有效,但不知道它是否总是发送,或者是否存在提交可能为空的用例。
试试这个
<input type="checkbox" class="custom-control-input" name="active" value="1"
@if((old('_token') && old('active') != null) || (old('_token') == null && $voucher->active))
checked
@endif
>
我有一个问题,似乎是 Laravel 复选框 old()
值的错误。我有一个代码,我想在编辑时填写默认值,如果表单提交失败,我想在表单中填写 old()
值。
问题是当原始数据库值为 TRUE 而新表单提交的复选框为 false 时。 Laravel old()
未在提交复选框时捕获 FALSE 值并填充为 TRUE 的原始值。
<input name="active" type="checkbox"
@if( old('active', $voucher->active ?? false) ) checked='checked' @endif
>
如果提交为FALSE,则回退到默认值。我发现的所有解决方案都是错误的。我该如何解决?
我觉得应该是
<input name="active" type="checkbox" value="{{old('active', $voucher->active ?? 0)}}" {{isset($voucher->active)?'checked':''}}>
仍然想检查它是否为真或 1 或 0 你可以像下面这样检查
<input name="active" type="checkbox" value="{{old('active', $voucher->active ?? 0)}}" {{(isset($voucher->active)&&$voucher->active==true)?'checked':''}}>
根据me.for,您的要求复选框不合适。最好选择单选按钮。这样用户可以在活动时选择 true 或 false
所以解决方案是测试另一个字段,如@old('submit')
<input name="active" type="checkbox"
@if( old('active') || (!old('submit') && $voucher->active) ) checked='checked' @endif
>
通过提交发送。它似乎有效,但不知道它是否总是发送,或者是否存在提交可能为空的用例。
试试这个
<input type="checkbox" class="custom-control-input" name="active" value="1"
@if((old('_token') && old('active') != null) || (old('_token') == null && $voucher->active))
checked
@endif
>