但是,我一直听到“瘦的控制器,脂肪模型”系列 – 我想知道这些验证检查是否应该放在模型中.
当我想到使用这种方法时,有三件事让我感到震惊.
>如何在不从这些模型函数中返回看似丑陋的数组或对象的情况下向用户显示不同的错误消息?例如,注册帐户时重复的电子邮件.负责在模型中添加用户的方法是否必须返回一个数组或对象来指示插入是否成功,以及任何错误消息?
>通过在模型中进行验证检查,检查从控制器提供给方法的变量(而不是POST数据),我将失去Form Validation类的使用,这个类在我的项目中非常有用.您是否建议我编写一个类或库,可以像CI库一样使用模仿表单验证类,但是对于提供的变量,而不仅限于POST数据?
>继续关注……因为在传递给模型之前,必须验证POST数据是否存在(isset($_ POST [‘myvar’])),其余的验证不应仅仅放在控制器也是?
任何建议,意见,意见将不胜感激!
但是让我们离开.
MVC中的模型不是类或对象. Model是一个层,它包含所有业务逻辑.它实际上由来自众多类的实例组成.两个最普遍的组是域对象[2](这是人们通常称之为“模型”的东西)和负责信息存储和检索的对象 – 通常是DataMappers.模型层还包含独立组件(都是您自己的组件)和第三方)和更高级别的抽象 – 服务.
你有什么作为Validation类,可能被认为是一个独立的组件,可以由Domain对象用来执行验证,或者期望传递Domain对象进行验证..取决于你的实现.
在你的情况下,我会在服务层处理这个问题.这将为View类的实例提供有效的域对象,或者提供表示错误的对象.
有些阅读材料可能对以下内容感兴趣:
> GUI Architectures
> AnemicDomainModel
> Tell,Don’t ask
再说..我到底知道这一切……