select2/select中的Laravel old($field)返回错误值



以下代码始终返回所选的第一个值,而不是空值!

<select class="select2" autocomplete="off" name="{{$field_name}}">
<option></option>
@foreach(explode(',', "a,b,c") as $key=> $value)
<option value='{{$key}}' @if (old($field_name) == $key) selected="selected" @endif>{{$value}}</option>
@endforeach
</select>

不知怎的,生成select语句的old($field_name) == $key returns 0总是将第一个选项作为所选选项,而不是占位符。

即使old($field_name) on its own returning ""

知道如何解决这个问题吗?

基于'' == 0 = true'' === 0 = false的结论

<select class="select2" autocomplete="off" name="{{$field_name}}">
<option></option>
@foreach(explode(',', "a,b,c") as $key=> $value)
<option value='{{$key}}' @if(!is_null(old($field_name)) && old($field_name) == $key) selected='selected' @endif>{{$value}}</option>
@endforeach
</select>

将修复问题

相关内容

最新更新