(Laravel) Запретить сброс данных после сбоя проверки
Я полный новичок в бэкенде и первым фреймворком я выбрал Laravel. Я по видеоуроку начал делать форму заполнения отзыва, параллельно при этом добавляя изменения, которых недостаёт (внешний вид или критерии для валидации, в основном). Самое главное, мне не нравится, что данные в текстовых полях всё время сбрасываются после валидации. Удовлетворяющую информацию я не смог найти, так как либо непонятно зачем, либо непонятно где.
Как это сделать просто и грамотно? Если есть на уму какой-нибудь очень полезный источник, то это тоже может сильно помочь. Очень нужно также, чтобы вы указывали куда вписывать какие-либо строки кода, так как это также является одним из основных причин, почему я не могу это сделать по гайдам.
Разметка:
@extends('main')
@section('main_content')
<form class="ml-auto mr-auto p-3 px-md-4 mb-3 w-50" method="post" action="/review/check">
@csrf
<h1 class="mb-4">Отзыв</h1>
@if($errors->any())
<div class="alert alert-danger text-danger bg-dark border border-danger">
<ul class="mb-0">
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<input autocomplete="off" type="email" name="email" id="email" placeholder="Введите Email" class="form-control bg-dark text-light border border-secondary"><br>
<input autocomplete="off" type="text" name="subject" id="subject" placeholder="Введите отзыв" class="form-control bg-dark text-light border border-secondary"><br>
<textarea autocomplete="off" name="message" id="message" class="form-control bg-dark text-light border border-secondary" placeholder="Введите сообщение"></textarea><br>
<button type="sumbit" class="btn btn-success w-100">Отправить</button>
</form>
@endsection
Контроллер:
public function review(){
return view('review');
}
public function review_check(Request $request){
$valid = $request->validate([
'email' => 'required|min:4|max:60',
'subject' => 'required|min:4|max:100',
'message' => 'required|min:8|max:500'
]);
}
Роут:
Route::get('/review', 'App\Http\Controllers\Main@review');
Route::post('/review/check', 'App\Http\Controllers\Main@review_check');
Ответы (1 шт):
Воспользуйтесь методом old.
Пример:
<input value="{{ old('email') }}"> type="email" name="email">
Раздел документации по заполнению старыми данными: Retrieving Old Input.
