Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 07.07.2021 17:17:59

Как получить ошибки валидации в JSON

У меня есть регистрация в которой валидатор проверяет поля

$request->validate([
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'required|string|confirmed|min:8',
            'phone' => 'required|unique:users'
        ]);

я обращаюсь в функцию регистрации через аякс запрос, как получить ответы в форме JSON? Сейчас когдая  ловлю ошибку

 axios.post(`/generatesms`, {phone: phone})
                .then(response => {
          
                    if (response.data.success == 'true') {

                        document.querySelector('#enterPhone').innerHTML = phone;
                        navigationEnterMenu(target); //успех
                        next_sms_time = response.data.data.timer;
                        enterTimer();

                    }else{

                        document.querySelector('#madalEnterPhone').classList.remove('js-modal-enter-content-open');
                        document.querySelector('.modal-enter-form-phone-text').innerHTML = phone + '<br>Не зарегистрирован!';
                        document.querySelector('#errorEnter').classList.add('js-modal-enter-content-open');

                    }

                }).catch(err => {
                    console.log(err);
                

            });

в catch(err) если валидация не пройдена выходит вот это

Error: Request failed with status code 422
    at createError (app.js?v1.00:607)
    at settle (app.js?v1.00:878)
    at XMLHttpRequest.handleLoad (app.js?v1.00:82)

как вывести нормально ошибку валдиации чере аякс подскажите пожалуйста?

Не в сети

#2 23.07.2021 07:18:17

Re: Как получить ошибки валидации в JSON

Добрый день.
Попробуйте так

    axios.post(`/generatesms`, {phone: phone})
        .then(response => {

          if (response.data.success == 'true') {

            document.querySelector('#enterPhone').innerHTML = phone;
            navigationEnterMenu(target); //успех
            next_sms_time = response.data.data.timer;
            enterTimer();

          } else {

            document.querySelector('#madalEnterPhone').classList.remove('js-modal-enter-content-open');
            document.querySelector('.modal-enter-form-phone-text').innerHTML = phone + '<br>Не зарегистрирован!';
            document.querySelector('#errorEnter').classList.add('js-modal-enter-content-open');

          }

        }).catch(error => {

          error.response.data.errors;
          console.log(error.response.data.errors)
        });

Не в сети

Подвал раздела