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

时间:2010-06-01 22:12:51

标签: zend-framework

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

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

ZF有什么办法吗?

<小时/> Benedict Cohen在下面正确回答,但直到我在ZF邮件列表档案中看到这种用法我才意识到: How to render multiple action views?

我正在使用类似的东西:

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

2 个答案:

答案 0 :(得分:7)

有一个view helper called 'action'可能会有所帮助。您指定控制器和操作以及参数并返回结果。帮助程序创建一个新的调度循环,所以如果你经常使用它会产生性能影响(我不担心性能,直到有证据表明它会导致问题)。

答案 1 :(得分:0)

看看this other post。 Zend_Cache类可能只是帮助您找到所需内容。