如果Helper与Model交互,这样可以吗?

时间:2011-04-11 12:43:37

标签: php model-view-controller

如果Helper与Model交互,是否可以?

例如,我有帮助生成自定义<select>来选择类别。 现在我在Controller中提取此<select>的数据(使用Model,of couse),然后将其分配给View。

但还有另一种方法可以做。只需将与Model的交互放入Helper即可。它将使Controller的代码更简单,并有助于我们避免重复代码。

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

据我所见,从任何地方访问模型数据都被认为是正常的,但修改数据只能在控制器中完成(对操作起作用)。

答案 1 :(得分:1)

如果您使用此帮助程序生成HTML控件,那么您应该将帮助程序保留在模型之外。您的所有模型都应关注数据本身 - 而不是格式化方式或使用它的方式。

将模型注入帮助程序会更好的组织:这遵循依赖注入模式,并允许您执行单元测试。

答案 2 :(得分:1)

我必须说“NO”=)最好将它保留在控制器中,因为如果模型出现问题,你必须从视图中管理它......或者如果以后你想要怎么办?添加一些限制,例如:只显示用户登录时的选择或仅显示几个选项等。

我在模型上创建一个方法来检索元素列表。 Id从控制器调用该方法来管理响应(未授权,未找到等)并选择/修改相应的视图以显示信息..

但那只是我=)

祝你好运!

答案 3 :(得分:0)

助手通常用来“帮助”你做事。我认为如果你在控制器或模型中使用它们或两者都没有那么重要。