我有一个控制器附件负责处理所有上传文件。该控制器使用组件来执行此控制。
现在我有以下问题,我需要调用另一个控制器的附件控制器中实现的功能,这种情况下的最佳做法是什么?而:
答案 0 :(得分:2)
你不是。这完全错了,违反了MVC模式。
文件代表系统中的单个实体,应该作为那些(IMO)和模型层处理,而不是在控制器中处理。您可以在单一模型中实现验证和保存逻辑,并通过其他地方的关联访问该模型(如果有的话)。
例如User hasOne Avatar,Gallery hasMany Image。 “头像和图库”关联是您的附件或文件表模型。
我已经编写了一个插件,可以完成上述操作以及更多操作 https://github.com/burzum/cakephp-file-storage
使用它或将控制器逻辑移动到模型中。控制器应该真的很瘦,只有控制逻辑,它们永远不应该关心数据处理或操作。