【发布时间】:2014-07-15 09:47:01
【问题描述】:
我有一个控制器附件负责处理所有上传文件。这个控制器使用一个组件来执行这个控制。
现在我有以下问题,我需要从另一个控制器调用附件控制器中实现的函数,在这种情况下最佳做法是什么?而:
- 不建议从一个控制器调用一个函数到另一个控制器。
- 如果我在我的模型中实现该功能,则必须使用同样不建议使用的组件。
【问题讨论】:
标签: php cakephp cakephp-2.0
我有一个控制器附件负责处理所有上传文件。这个控制器使用一个组件来执行这个控制。
现在我有以下问题,我需要从另一个控制器调用附件控制器中实现的函数,在这种情况下最佳做法是什么?而:
【问题讨论】:
标签: php cakephp cakephp-2.0
你没有。这是完全错误的,违反了MVC模式。
文件代表系统中的单个实体,应作为那些 (IMO) 和在模型层中处理,而不是在控制器中。您可以在一个单个模型中实现验证和保存逻辑,并通过其他地方的关联访问该模型(如果您也有的话)。
例如 User hasOne Avatar,Gallery hasMany Image。 Avatar 和 Gallery 关联是您的附件或文件表模型。
我已经编写了一个插件,它完全可以完成上面的工作,还有更多 https://github.com/burzum/cakephp-file-storage
使用它或将您的控制器逻辑移动到模型中。控制器应该真的很瘦,只有控制逻辑,他们不应该关心数据处理或操作。
【讨论】: