У меня есть приложение Laravel, которое использует форму для создания предметов.Форма использует проверку, как определено в документации Laravel в этом разделе .
У меня есть файл запроса StoreItem:
public function rules() {
return [
'item_name'=>'required',
'category_id'=> 'required',
'collection_id'=> 'required',
'brewery_id'=> 'required',
];
}
и в контроллере у меня есть следующее:
public function store(storeItem $request)
{
$validated = $request->validated();
$item = new Item([
'user_id' => Auth::id(),
'item_name' => $request->item_name,
'category_id' => $request->category_id,
'collection_id' => $request->collection_id,
'brewery_id' => $request->brewery_id,
]);
$item->save();
Когда проверка обнаруживает ошибку, снова создается форма создания, но я не вижу старых входных данных.
Для полей ввода текста я сделал следующее:
<input type="text" class="form-control" name="item_name" value="{{ old('item_name') }}" />
, и это показывает старые входные данные, но что делать с выпадающими полями, такими как category_id, collection_id и brewery_id.Я хочу, чтобы они имели старое значение в качестве «выбранного» значения.
В настоящее время в форме, которую я имею (для раскрывающихся списков):
<div class="form-group">
<label class="form-label" for="brewery">Brewery: (*)</label>
<select class="form-control" name="brewery_id" >
@foreach($breweries as $brewery)
<option value="{{ $brewery->id }}">{{ $brewery->brewery_name }}</option>
@endforeach
</select>
</div>
Это кажется, источник указывает, что использование метода old () может даже не понадобиться, но если я не использую