2012-03-16 114 views
1

我知道CI的做法是根据控制器中的规则进行验证,但我认为这不是最终方法。你会推荐我如何遵循CI方式或验证模型中的传入数据,因此我的模型将始终保护自己免受不良数据的影响。我对MVC的理解是控制器不必保留任何程序逻辑,所有的逻辑都在模型中实现。如果你能详细解释为什么两种方法都是好的,而不是推荐哪一种,我将不胜感激。验证数据的位置CodeIgniter中的控制器或模型

干杯

+2

可能重复:http://stackoverflow.com/questions/4568553/mvc-in-php-fat-model-or-fat-controller – 2012-03-17 00:08:33

回答

6

没有银弹。

模型中的验证可以保护您免受程序化失效的影响。但是,用户不能直接访问您的模型,只能通过控制器并最终通过表单访问。大多数情况下,您需要针对特定​​形式或特定控制器进行额外的验证,并且这在模型中不适用。

这是一个模型外的验证层。理想情况下,您可以创建一个独立的验证对象(可能绑定到特定的表单),由控制器使用。有时您可能需要在控制器本身进行额外的验证。

验证不是二元的。在不同的上下文中有许多层次的验证和不同类型的验证。您可能需要在模型和控制器中进行验证。

相关问题