php – MVC架构中的数据和表单验证
我使用CodeIgniter开发了大多数Web应用程序,并且在将此数据发送到要使用的Model之前,始终采用内置Form Validation类验证控制器内部的表单数据的方法,例如将数据插入数据库.
但是,我一直听到“瘦的控制器,脂肪模型”系列 – 我想知道这些验证检查是否应该放在模型中. 当我想到使用这种方法时,有三件事让我感到震惊. >如何在不从这些模型函数中返回看似丑陋的数组或对象的情况下向用户显示不同的错误消息?例如,注册帐户时重复的电子邮件.负责在模型中添加用户的方法是否必须返回一个数组或对象来指示插入是否成功,以及任何错误消息? 任何建议,意见,意见将不胜感激!
你的原始问题来自于CodeIgniter对MVC的解释是非常可怕的.这个框架假装View只是一个模板,而Model只是一个ORM(
which some say,should be classified as anti-pattern).这是完全错误的,并强制控制器内部的机器人业务和表示逻辑.
但是让我们离开. MVC中的模型不是类或对象. Model是一个层,它包含所有业务逻辑.它实际上由来自众多类的实例组成.两个最普遍的组是域对象[2](这是人们通常称之为“模型”的东西)和负责信息存储和检索的对象 – 通常是DataMappers.模型层还包含独立组件(都是您自己的组件)和第三方)和更高级别的抽象 – 服务. 你有什么作为Validation类,可能被认为是一个独立的组件,可以由Domain对象用来执行验证,或者期望传递Domain对象进行验证..取决于你的实现. 在你的情况下,我会在服务层处理这个问题.这将为View类的实例提供有效的域对象,或者提供表示错误的对象. 有些阅读材料可能对以下内容感兴趣: > GUI Architectures 再说..我到底知道这一切…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |