如果返回错误,请填充 select 下拉列表

Populate select dropdown if returning with errors

与我的文本字段一样,如果视图返回错误,我想用之前提交的数据填充 select 元素,例如:value="{{ old('element_name_here') }}".

当前视图:

<select class="form-control" id="input" name="{{ $questionDetail->question_number }}" required="required">
    <option disabled selected value> -- Select an option --</option>
        @foreach($answers as $answer)
            <option value="{{ $answer->value }}">{{ $answer->question }}</option>
        @endforeach
</select>

如何在上述场景中实现它,因为似乎没有可以在不覆盖值的情况下添加值的地方?谢谢。

<option 
    value="{{ $answer->value }}" 
    {{ $answer->value == old(questionDetail->question_number) ? 'selected' : '' }}>
        {{ $answer->question }}
</option>

您可以从第一个选项中删除 'selected'。默认情况下会选中它,因为它是第一个。如果 old() 存在,那么它将进行检查。

您需要将先前的值标记为选中,这样应该可以工作:

<select class="form-control" id="input" name="{{ $questionDetail->question_number }}" required="required">
    <option disabled @if(!old($questionDetail->question_number)) selected @endif value> -- Select an option --</option>
        @foreach($answers as $answer)
            <option value="{{ $answer->value }}" @if(old($questionDetail->question_number) == $answer->value) selected @endif>{{ $answer->question }}</option>
        @endforeach
</select>

可能在大量使用表单时使用 https://laravelcollective.com/docs/5.3/html(分支 5.4)

是个好主意