Laravel Spark - 注册

时间:2017-09-02 10:30:50

标签: php laravel laravel-spark

我刚刚安装了一个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 个答案:

答案 0 :(得分:4)

我相信这与Laravel" Consistent Exception Handling"引擎盖下。 Spark的VueJS应用程序还没有考虑到这一点。

要在/spark/resources/assets/js/forms/errors.js函数的this.set第54行附近进行本地修复,请更改:

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

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

重新编译你的JS,它应该重新开始工作。

答案 1 :(得分:2)

我在新安装后遇到了同样的问题。我根据保罗的答案更改了代码,但它仍然无法正常工作。也许原因是我不知道如何重新编译JS ......

我做了:重新运行npm run dev,运行php artisan view:clear,运行php artisan cache:clear但是这一切都没有帮助。对不起,我对laravel来说是全新的

答案 2 :(得分:1)

我相信您使用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.']};
    }
};