Коли валідація не проходить, Laravel перенаправляє користувача назад, кладе помилки в сесію й «спалахом» зберігає введені дані. У шаблоні їх лишається вивести.
<input name="email" value="{{ old('email') }}" @class(['is-invalid' => $errors->has('email')])>
@error('email')
<p class="error">{{ $message }}</p>
@enderror
Що тут працює:
$errorsдоступна в кожному шаблоні групиweb- її додає middlewareShareErrorsFromSession;@errorвиводить перше повідомлення для поля в змінній$message;old('email')повертає значення, яке користувач надіслав минулого разу. Другим аргументом передають значення за замовчуванням - наприклад,old('email', $user->email)у формі редагування.
Чого не повертають через old(): паролі. Laravel не зберігає в сесії поля password і password_confirmation.
Для JSON-запитів перенаправлення немає - повертається відповідь 422 з об'єктом errors, і показ помилок бере на себе фронтенд.