【问题标题】:Where to validate data Controller or Model in CodeIgniter在 CodeIgniter 中验证数据控制器或模型的位置
【发布时间】:2012-04-02 12:15:11
【问题描述】:
我知道执行此操作的 CI 方法是根据控制器中的规则进行验证,但我认为这不是最终方法。您会建议我按照 CI 方式做什么或验证模型中的传入数据,这样我的模型将始终保护自己免受不良数据的影响。我对 MVC 的理解是控制器不必保留任何程序逻辑,所有逻辑都在模型中实现。如果您能详细解释一下为什么这两种方法都好而不好以及推荐哪一种,我将不胜感激?
干杯
【问题讨论】:
标签:
php
model-view-controller
codeigniter
validation
【解决方案1】:
没有灵丹妙药。
模型中的验证可保护您免受程序性无效来源的影响。但是,用户不能直接访问您的模型,而只能通过控制器并最终通过表单访问。大多数时候,您需要额外的验证,这些验证特定于某个表单或某个控制器,并且在模型中是不合适的。
这主张在模型之外进行一层验证。理想情况下,您可以创建一个单独的验证对象(可能绑定到特定的表单),供控制器使用。有时您可能需要对控制器本身进行额外验证。
验证不是二进制的。在不同的上下文中,需要进行许多层的验证和不同类型的验证。您可能需要在模型和控制器中进行验证。