gre*_*ard 1 php validation model-view-controller codeigniter
我知道这样做的CI方法是验证控制器中的规则,但我认为这不是最终的方法.您建议我遵循CI方式或验证模型中的传入数据,因此我的模型将始终保护自己免受不良数据的影响.我对MVC的理解是控制器不必保留任何程序逻辑,所有逻辑都在模型中实现.如果你能详细解释为什么两种方法都是好的而不是推荐哪种方法,我将不胜感激?
干杯
没有银弹.
模型中的验证可以保护您免受程序失效的编程.但是,用户无法直接访问您的模型,只能通过控制器并最终通过表单访问.大多数情况下,您需要额外的验证,这些验证特定于某个表单或某个控制器,并且在模型中是不合适的.
这就要求在模型之外进行一层验证.理想情况下,您可以创建一个单独的验证对象(可能绑定到特定的表单),由控制器使用.有时您可能需要在控制器本身进行额外验证.
验证不是二进制的.在不同的上下文中,有许多层验证和不同类型的验证.您可能需要在模型和控制器中进行验证.