TLDR;
(в Laravel 5.8). Как при возвращении к ошибке проверки я могу вернуться к определенному представлению со всеми входными данными и ошибками?
Я создаю многошаговую форму, в которой мне нужно проверять ввод на каждом шаге. Поэтому я создал первую страницу для создания, а затем последующие страницы для обновления.
На второй странице, когда валидатор не работает, я возвращаю конкретное представление, так как я хочу, чтобы оно переходило к этой части, а не к началу формы. Я также возвращаю ошибки и ввод при ошибке.
Контроллер:
if ($validator->fails()) {
return view('partials.question_02_' . $type)
->with('type', $type)
->with('id', $id)
->withErrors($validator)
->withInput($request->all());
}
Вот моя логика проверки:
$validator = Validator::make($request->all(), [
'email' => 'required',
'first_name' => 'required',
'last_name' => 'required',
'phone' => 'required',
]);
С этим я могу вернуться к конкретному представлению и с ошибками проверки. Однако я не могу получить старые данные.
Следующее в Blade покажет, что существует ошибка (появляется error class), однако, он не покажет старый ввод.
<input class="@if ($errors->has('first_name')) error @endif"
type="text" name="first_name" placeholder="First Name" value="{{ old('first_name') }}">
* обратите внимание, здесь я поставил только две строки для удобочитаемости
Что странно, что если я умру и дам запрос, я смогу увидеть все входные данные:
dd($request->all());
Однако, если я пытаюсь получить его из сеанса, я не вижу ничего из ввода:
@if($errors)
{{var_dump(Session::all())}}
@endif
Есть идеи, почему {{old ('first_name')}} не работает в этом случае?
Спасибо!