Laravel - 验证保存选择的选项

Laravel - Validation save selected option

我有一个经过验证的表单。当这些错误之一发生时,输入字段的值将在输入的值字段中使用 {{ old('name') }} 保存。但这仅适用于常规文本输入字段。

我的问题。

如何使用相同的方法保存 select 框的 selected 值?因此,如果用户遇到错误,他们的 selected 选项仍将是 selected?

select编辑

的代码
<select name="period_id" id="" class="form-control {{ $errors->has('period_id') ? ' is-invalid' : '' }}">
   <option value="">Choose a period...</option>
     @foreach($plans as $plan)
     <option value="{{ $plan->id }}">
        {{ $plan->name }}
     </option>
     @endforeach
</select>

@if($errors->has('period_id'))
 <p style="color: red;"> {{ $errors->first('period_id') }}</p>
@endif

编辑

array:9 [▼
  "_token" => "flBWl0qRV7GnMYL0D90G"
  "name" => "Product name"
  "description" => "Descriptiobn"
  "price" => "1,000"
  "productable_type" => "App\Plan"
  "period_id" => "2"
  "periodically_price" => "25"
  "composer_package" => "asdasdsasasad"
  "thumbnail" => UploadedFile {#654 ▶}
]

您可以检查每个选项并将 selected 属性添加到旧选项。

<option value="{{ $plan->id }}" {{ $plan->id === old('planid') ? 'selected' : '' }}>

您可以通过 Laravel

的表单助手进行尝试

{!! Form::select("input_name", $optionForSelect, old('input_name', isset($valueInput) ? $valueInput : ''), ['class' => 'form-control', 'id' => 'input_name']) !!}