Laravel Spark - нет ошибок проверки полей AJAX в реестре

Я только что установил Laravel Spark v4 - побежал spark new project-name и выполнили шаги без каких-либо ошибок, проблема в том, что в форме регистра не отображаются ошибки проверки, а не встроенные красные предупреждения, когда ввод не заполнен, или проверка после отправки формы, в чем может быть проблема? не изменили общие файлы регистрового блейда.

Когда ничего не введено, я получаю код ответа:

app.js:6175 POST http://127.0.0.1:8000/register 422 (Unprocessable Entity)

И правильный ответ JSON:

{"message":"The given data was invalid.","errors":{"name":["The name field is required."],"email":["The email field is required."],"password":["The password field is required."],"terms":["The terms must be accepted."]}}

Базовая проверка Laravel работает с регистрационной формой, но не работает с AJAX-запросом на регистрационных / регистрационных формах. Сама форма работает при регистрации новых пользователей - но без обратной связи с пользователем.

3 ответа

Решение

Я считаю, что это связано с " Последовательной обработкой исключений" Laravel под капотом. Приложение VueJS для Spark пока не учитывает это.

Чтобы исправить локально, вокруг линии 54 /spark/resources/assets/js/forms/errors.js, в this.set функция, изменение:

if (typeof errors === 'object') {
        this.errors = errors;
    } else {...

в

if (errors.errors && (typeof errors.errors === 'object')){
        this.errors = errors.errors;
    } else {...

Перекомпилируйте свой JS, и он должен начать работать снова.

У меня та же проблема прямо сейчас после новой установки. Я изменил код в соответствии с ответом Пола, но он все еще не работает. Может быть, причина в том, что я не знаю, как перекомпилировать JS...

Я сделал: перезапустить npm, запустить dev, запустить php artisan view: очистить, запустить php artisan cache: очистить, но все это не помогло. Извините, я совершенно новичок в Laravel

Я полагаю, что вы используете Laravel 5.5 (основываясь на ответе Пола Граймса о согласованной обработке исключений). Для Laravel 5.5 вы должны использовать Laravel Spark 5.0 вместо Laravel Spark 4.0. Я считаю, что Тейлор Отвелл, должно быть, исправил эту проблему.

Мое приложение было на Laravel 5.4 и Laravel Spark 4.0. Мне нужно было обновить до Laravel 5.5, но я не могу обновить Laravel Spark 5.0. Итак, решение Пола Граймса помогло мне. Однако, поскольку часть кода в Laravel Spark 4.0 не соответствует согласованной обработке исключений, мне нужно было изменить мой код следующим образом:

this.set = function (errors) {
    if (typeof errors.errors === 'object') {
        this.errors = errors.errors;
    } else if (typeof errors === 'object') {
        this.errors = errors;
    } else {
        this.errors = {'form': ['Something went wrong. Please try again or contact customer support.']};
    }
};
Другие вопросы по тегам