首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VeeValidate v3:如何处理后端验证消息?

VeeValidate v3:如何处理后端验证消息?
EN

Stack Overflow用户
提问于 2019-09-03 15:41:54
回答 2查看 3.6K关注 0票数 3

我正在进行从VeeValidate v2升级到v3的工作。因为他们已经删除了ErrorBag的概念,所以我很难弄清楚如何处理后端验证。

以前(请参阅下面的代码),我只是在运行客户端验证,如果通过了,就调用服务器验证路由,如果失败,我将只在VeeValidate中使用VeeValidate函数。

任何帮助都将不胜感激。只需要知道如何在VeeValidate v3中完成后端验证处理。谢谢!

代码语言:javascript
复制
validateStep(step) {

    this.$validator.validateAll(step).then((result) => {

        // If client-side validation passes, move into this block.
        if (result) {

            // Then run server-side validation.
            axios
                .post(`/ajax/validate-stuff`, this.postData)

                // If server-side validation Passes:
                .then(function (response) {
                    // Do the things
                })

                // If server-side validation Fails:
                .catch(function (error) {
                    // Add errors to VeeValidate Error Bag
                    var entries = Object.entries(error.response.data.errors);
                    entries.forEach(function(item, index) {
                        this.Errors.add({
                            field: item[0],
                            msg: item[1][0]
                        });
                    });
                });

        }
    });

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-03 16:55:11

我还在VeeValidate的Github中发布了一个关于这个问题的文章,并得到了答案。

在撰写本文时,这方面的文档被埋在示例部分:https://logaretm.github.io/vee-validate/examples/backend.html#server-side-rules中。

我听说不久将在适当的文件中更新这一情况。

更新链接:https://vee-validate.logaretm.com/v3/advanced/server-side-validation.html#handling-backend-validation

票数 1
EN

Stack Overflow用户

发布于 2020-07-29 22:51:19

上面的fylzero的答案是正确的。重要的一点是确保验证提供程序中的vid (下面是'testinput')与服务器返回的error对象中的键匹配。然后捕获错误:

代码语言:javascript
复制
<validation-observer v-slot="{ invalid }" ref="formValidator">
    <form>
        <validation-provider
            v-slot="{ errors }"
            vid="testinput"
        >
            <input />
            <span>{{ errors[0] }}</span>
        </validation-provider>
    </form>
</validation-observer>

<script>
    try {
        // Make the api call here                   

    }
    catch (error) {
        // populate the vee-validate error manually
        this.$refs.formValidator.setErrors(error.data.errors);
    }
</script>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57774932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档