gpt4 book ai didi

javascript - 忘记使用良好的域模型进行服务器端表单验证?

转载 作者:行者123 更新时间:2023-12-02 18:35:32 25 4
gpt4 key购买 nike

我正在使用 Zend Framework 和 jQuery 开发 MVC 应用程序。我的模型由三层组成:服务层、映射器、域模型。

迄今为止,我一直在努力处理输入验证 - 有些发生在客户端,有些发生在 Zend Form 中,有些发生在域模型中。职责变得困惑,并且有很多重复的逻辑。

经过深思熟虑,我看不出有什么理由不跳过任何 Zend Form 验证。我可以使用 javascript 验证简单的事情(包括正则表达式),并在需要时(通过 ajax)从服务器获取其他数据。当表单通过验证时,我会将其传递到服务器。

当然,我的域模型逻辑需要全面(复制客户端上的所有内容),但是域模型还有什么用途,对吧?

我错过了什么吗?有什么需要注意的问题吗?

编辑:需要明确的是,我根本不建议放弃服务器端验证。 (我意识到这是势在必行的。)我建议如果我的领域模型做到了这一点,那么也没有必要在表单中做到这一点。

最佳答案

您的域不适合在客户端上执行“之后”执行任何操作。

换个 Angular 思考:您在服务器上进行验证,并且额外在客户端上进行验证以使用户满意。

首先,您应该确保您想要验证的事情应该首先在域模型上完成(可能在 set() 方法中)。

然后您也可以(作为用户的额外功能)在客户端上执行此操作,但这只是为了让用户更快地反馈输入过程中出现的错误。永不替代。它永远不会阻止用户做一些使您的模型处于无效状态的事情。

此外,当您使模型持久化时,您应该始终检查它是否处于有效状态。无效的内容将使其无效,因此您不应该保存它。此外,当您将更改应用于应用程序中的多个模型(实体)时,请确保执行事务以验证这两个模型,并确保其中没有一个模型保存为无效状态。

关于javascript - 忘记使用良好的域模型进行服务器端表单验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17357124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com