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.']};
}
};