在哪里验证CodeIgniter中的数据控制器或模型


Where to validate data Controller or Model in CodeIgniter

我知道CI的方法是根据控制器中的规则进行验证,但我认为这不是最终的方法。您建议我按照CI方式执行什么操作或验证模型中的传入数据,这样我的模型将始终保护自己免受坏数据的影响。我对MVC的理解是,控制器不必保留任何程序逻辑,所有逻辑都在模型中实现。如果你能详细解释为什么这两种方法都是好的和不好的,以及推荐哪种方法,我将不胜感激?

干杯

没有银弹。

模型中的验证可以保护您免受程序性失效源的影响。然而,用户不能直接访问您的模型,只能通过控制器并最终通过表单访问。大多数时候,你需要额外的验证,这是特定于某个窗体或某个控制器的,在模型中是不合适的。

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

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