How to avoid bloating the controller code in CodeIgniter?
控制器在 MVC 模式中用于处理用户输入和输出。因此,输入验证和响应准备应该在控制器中完成。
例如,我有一个控制器方法 "save",它:
- 寻找输入数据
- 对数据运行验证器
-
如果输入有效,则加载适当的模型,将其字段设置为输入值,并调用其
save() 方法 - 如果输入无效,准备数据以重新加载编辑表单,显示表单
所有这些序列都会产生相当混乱的线性代码。我想以某种方式将它分开。我是否将验证部分移至模型?听起来不对?我是否要创建一个特殊的"库"类来处理输入?
在 Asp.Net MVC 中这会更好,因为他们已经实现了"对象绑定器"模式。因此,验证和模型字段绑定消失了,控制器变得更轻了。 CodeIgniter 有类似的东西吗?
控制器进行验证并没有被广泛接受,我在模型中按照"保持模型胖,控制器瘦,视图哑"。
这取决于业务逻辑什么是有效的电话号码等等,所以只有在模型中才有意义。
我会完全按照您所逃避的方式去做,并在您的模型中加入尽可能多的逻辑。 imo 确实应该使用控制器来启动服务和为视图准备数据。
您应该尽可能多地重复使用代码,即验证器、过滤器等。