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