Как предать клиенту данные о результатах валидации Laravel отправленной формы?

Вторые сутки пытаюсь решить задачу получения данных с формы, валидации и ответа сервера клиенту о результатах валидации.

Данные с формы валидируются, по результатам отправляется ответ клиенту:
  • Если данные не прошли валидацию, заново рендерятся форма с указанием ошибок валидации;
  • Если данные прошли валидацию, ответ что все ок.

$validator = Validator::make($request->all(), [
	//правила валидации
	]);
	
if($validator->fails()) {
    return redirect('/user-register')
        ->withErrors($validator)
        ->withInput();
} else {
    return '<h2>OK!</h2>';
}


На клиенте ответ обрабатывается JS скриптом, и в зависимости от результата в модальном окне выводится форма с ошибками валидации или ответ об успешной обработке данных.

spoiler

async function postData(url = '', data = {}) {
		const response = await fetch(url, {
				method: 'POST',
				mode: 'cors',
				cache: 'no-cache',
				credentials: 'same-origin', 
				headers: {
						'X-CSRF-TOKEN': document.querySelector('meta[name=csrf-token]').content,
						'Content-Type': 'application/json'
						// 'Content-Type': 'application/x-www-form-urlencoded',
				},
				redirect: 'follow', 
				referrerPolicy: 'no-referrer', 
				body: JSON.stringify(data) 
		});
		return await response.text();
} 


function sendRegister(){
		const registerForm  = document.getElementById('registerForm');//ID формы

		document.getElementById('formBtn').addEventListener('click', function (event){
				event.preventDefault();
				let formData = {
						'name': registerForm.querySelector('[name="name"]').value,
						'email': registerForm.querySelector('[name="email"]').value,
						'password': registerForm.querySelector('[name="password"]').value,
						'password_confirmation': registerForm.querySelector('[name="password_confirmation"]').value
				}

				postData('{{route('user.store')}}', formData)
						.then((data) => {
								document.querySelector('.fancybox__content').innerHTML = data;
								console.log(data);
						});
		});
};



Не могу сообразить, как можно передать дополнительный параметр об успехе или ошибках валидации данных для обработки js скриптом не клиенте.

Куда смотреть? Буду благодарен за любую подсказку в сособах решения задачи.
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы