Zend framework 捕获当前操作中另一个操作的输出?

Zend framework 捕获当前操作中另一个操作的输出?,zend-framework,Zend Framework,我一直在试图找到一种方法来捕获当前动作中另一个动作的输出(渲染视图)。。。类似于输出缓冲的东西 场景是我需要保存一个报告的“快照”。报告中使用的数据是不断变化的,无论出于何种原因,我都需要实际保存视图HTML,而不仅仅是数据数组。我已经创建了一个snapshotAction(),我想以某种方式捕获其中单独reportAction()的输出。我不希望将reportAction()呈现到屏幕上,我希望在操作完成之前在当前操作中呈现它 在采埃孚有没有办法做到这一点? 下面Benedict Cohen

我一直在试图找到一种方法来捕获当前动作中另一个动作的输出(渲染视图)。。。类似于输出缓冲的东西

场景是我需要保存一个报告的“快照”。报告中使用的数据是不断变化的,无论出于何种原因,我都需要实际保存视图HTML,而不仅仅是数据数组。我已经创建了一个snapshotAction(),我想以某种方式捕获其中单独reportAction()的输出。我不希望将reportAction()呈现到屏幕上,我希望在操作完成之前在当前操作中呈现它

在采埃孚有没有办法做到这一点?
下面Benedict Cohen的回答正确,但直到我在ZF邮件列表档案中看到这种用法,我才意识到这一点:

我正在使用类似的方法:

public function snapshotAction () {
    $content = $this->view->action('run', 'report');
    ...etc...
}

看一看。Zend_缓存类可能只会帮助您找到所需的内容。

有一种方法可能会有所帮助。指定控制器、操作和参数,然后返回结果。助手创建了一个新的分派循环,因此如果您经常使用它,它可能会对性能产生影响(在有证据表明它会导致问题之前,我不会担心性能)。

我需要的正是一个新的分派循环,但我想在控制器操作中使用某种方法,出于两个原因:我实际上不想呈现快照视图(计划将其作为AJAX调用,很抱歉,我忘了提到这一点),而且我必须从快照视图处理/保存报告视图,这打破了MVC惯例。但它会工作的,只是震惊你不能从控制器上做。我收回它。我不认为出于某种原因,你可以从控制器中调用它,但它工作得非常好。将用更具体的代码编辑我的问题。