我用于更新和创建对象的控制器非常相似 - 它们都执行相同的表单验证和重定向。但他们当然会在模型中调用不同的方法。我应该合并它们还是将它们分开?或者我应该为验证做一个单独的帮助函数?
优点:
缺点:
答案 0 :(得分:2)
我几乎总是将它们合并。相同的验证,相同的前端页面指针等。您需要做一些检查,但我认为它们超过了缺点。
当需要添加字段或修改处理程序的某些逻辑时,这样做会容易得多。
答案 1 :(得分:0)
如何创建一个验证方法,该方法传递一个表示模式(添加或更新)的变量,并在验证后调用相应的控制器?
答案 2 :(得分:0)
我不会合并两个控制器(我喜欢在那里有一些统一性),DRY(它确实很重要)并且保持控制器方法的瘦,我宁愿创建一个公共验证方法。
答案 3 :(得分:0)
更新和插入是两回事。
Update将返回受影响的行数,insert将返回该插入的id。这很重要,因为你应该在返回控制器功能之前检查更新或插件是否实际发生。
我应该补充一点,验证不会受到影响。无论插入还是更新,都可以调用验证函数。如果验证失败,则重新显示表单。如果成功,则进行更新或插入。
答案 4 :(得分:0)
我不会有不同的控制器,只有同一控制器中的不同方法。
控制器将是“blog.php”,然后更新是一种方法,插入是另一种方法。
例如:
blog/add
blog/update/1
这样您就可以在控制器属性中设置验证并只使用一次。
如果你创建一个基于post或从db中提取的$ data ['blog']数组,你甚至可以使用相同的表单。这可能是一个太过分的步骤,但在某些情况下它是有道理的。
答案 5 :(得分:0)
添加和更新是同一控制器的不同方法。虽然我很喜欢保持轻巧聪明的代码,但在一天结束时,混合东西比解决方案更麻烦。
我认为这取决于您提交的表单的复杂程度。例如,当你必须验证图像替换时,它可能会很痛苦。
MVC是关于保持小而简单的,对吗?为什么要混淆它?