Laravel Spark - 注册时没有 AJAX 字段验证错误
Laravel Spark - no AJAX fields validation errors on register
我刚刚安装了 Laravel Spark v4 - 运行 spark new project-name
并按照步骤操作没有任何错误,问题是注册表单没有显示任何验证错误,不是内联的未填写输入或发送表单后验证时出现红色警告,可能是什么问题?没有更改通用寄存器 blade 文件。
当没有输入任何内容时,我得到响应代码:
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 请求。表单本身在注册新用户时有效——但没有反馈给用户。
我认为这与 Laravel 的“Consistent Exception Handling”有关。 Spark 的 VueJS 应用程序尚未考虑到这一点。
要在本地修复,在 /spark/resources/assets/js/forms/errors.js
的第 54 行附近,在 this.set
函数中,更改:
if (typeof errors === 'object') {
this.errors = errors;
} else {...
到
if (errors.errors && (typeof errors.errors === 'object')){
this.errors = errors.errors;
} else {...
重新编译您的 JS,它应该会重新开始工作。
我在新安装后遇到了同样的问题。我根据Paul的回答修改了代码,还是不行。可能是我不知道怎么重新编译JS...
我做了:re运行 npm 运行 dev, 运行 php artisan view:clear, 运行 php artisan cache:clear 但这一切都无济于事。抱歉,我是 laravel
的新手
我相信您使用 Laravel 5.5(基于 Paul Grimes 关于一致异常处理的回答)。对于 Laravel 5.5,您应该使用 Laravel Spark 5.0 而不是 Laravel Spark 4.0。我相信 Taylor Otwell 一定已经解决了这个问题。
我的应用程序是 Laravel 5.4 和 Laravel Spark 4.0。我需要升级到 Laravel 5.5,但我是 unable to upgrade Laravel Spark 5.0。所以,Paul Grimes 的解决方案帮助了我。但是,由于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.']};
}
};
我刚刚安装了 Laravel Spark v4 - 运行 spark new project-name
并按照步骤操作没有任何错误,问题是注册表单没有显示任何验证错误,不是内联的未填写输入或发送表单后验证时出现红色警告,可能是什么问题?没有更改通用寄存器 blade 文件。
当没有输入任何内容时,我得到响应代码:
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 请求。表单本身在注册新用户时有效——但没有反馈给用户。
我认为这与 Laravel 的“Consistent Exception Handling”有关。 Spark 的 VueJS 应用程序尚未考虑到这一点。
要在本地修复,在 /spark/resources/assets/js/forms/errors.js
的第 54 行附近,在 this.set
函数中,更改:
if (typeof errors === 'object') {
this.errors = errors;
} else {...
到
if (errors.errors && (typeof errors.errors === 'object')){
this.errors = errors.errors;
} else {...
重新编译您的 JS,它应该会重新开始工作。
我在新安装后遇到了同样的问题。我根据Paul的回答修改了代码,还是不行。可能是我不知道怎么重新编译JS...
我做了:re运行 npm 运行 dev, 运行 php artisan view:clear, 运行 php artisan cache:clear 但这一切都无济于事。抱歉,我是 laravel
的新手我相信您使用 Laravel 5.5(基于 Paul Grimes 关于一致异常处理的回答)。对于 Laravel 5.5,您应该使用 Laravel Spark 5.0 而不是 Laravel Spark 4.0。我相信 Taylor Otwell 一定已经解决了这个问题。
我的应用程序是 Laravel 5.4 和 Laravel Spark 4.0。我需要升级到 Laravel 5.5,但我是 unable to upgrade Laravel Spark 5.0。所以,Paul Grimes 的解决方案帮助了我。但是,由于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.']};
}
};