1

我正在使用 CakePHP 开发一个 Web 应用程序。我的申请流程如下:

  • 一个文件被上传表单视图。

  • 控制器接收文件。现在根据文件的类型,我进行不同类型的处理。但最终提取的参数相同并保存到数据库中的同一张表中。在对每种类型的文件进行处理时,我的控制器变得非常冗长。我在这里这里看到了一些鼓励使用的帖子,component但是从cakebook 中它说当你想在不同的控制器之间共享代码时使用组件,我猜它是类的实用程序类型。

我的问题是如何controller在不同的文件中破坏我的代码,以便在我的控制器中接收到特定类型的文件后,我可以重定向我的流程?

4

1 回答 1

1

处理上传是数据处理,应该通过这个进入模型。我个人认为所有这些野外的组件解决方案都不适合它。

如果您将上传处理移动到模型中,您可以拥有单个控制器并在模型方法中进行所有检查,然后可以调用关联模型或获取模型实例,该实例最终将处理您想要的文件类型由该模型处理。

随意看看我的FileStorage插件。阅读 readme.md 它可能会给你一些关于正确处理文件的更多想法。IMO 不应仅通过将路径保存在例如 Users.avatar 中来将文件直接附加到记录,而应将文件与用户模型相关联:用户 hasOne Avatar。处理文件和处理它们会容易得多,并且您可以统一处理所有文件。

于 2012-10-17T10:24:09.723 回答