我有一个应用程序,它处理根据一系列状态转换定义的过程而发展的项目。我有一个按钮将项目设置为下一个状态。该按钮调用ProjectsController中的一个函数。此函数调用Project模型中的另一个函数,我在其中搜索正确的转换,具体取决于当前状态,user_group和其他一些参数,并设置新状态。完成所有操作后,我将从控制器返回原始页面,其中包含“return $this->redirect($this->referer());
”。
某些过渡有副作用。一种是创建PDF,将其保存在服务器上,并在引用当前项目的“文档”表中添加新条目。
问题:我应该在哪里放置创建PDF的功能?我想把它放到模型中。但我需要一些视图文件来首先渲染一个html页面,然后将其转换为PDF。我可以把它交给控制器。但后来我有一个控制器功能,不应该直接调用,不渲染视图。
这些功能都有效,但放在哪里呢?还有其他可能吗?是否可以使用组件?
答案 0 :(得分:0)
将其实现为PdfView,它将为您呈现任何(pdf)视图为Pdf。已经有一个插件可以执行此操作,在Github上搜索CakePdf。
组件显然是错误的地方。输出Pdf,因此它是一种视图。模型为您提供数据,控制器设置它,视图呈现它。