我一直试图找到一种方法来捕获当前动作中另一个动作的输出(渲染视图)......类似于输出缓冲。
场景是我需要保存报告的“快照”。报告中使用的数据不断变化,无论出于何种原因,我需要实际保存视图HTML而不仅仅是数据数组。我创建了一个snapshotAction(),我想以某种方式捕获其中单独的reportAction()的输出。我不希望将reportAction()渲染到屏幕上,我希望它在操作完成之前在当前操作中呈现。
ZF有什么办法吗?
<小时/> Benedict Cohen在下面正确回答,但直到我在ZF邮件列表档案中看到这种用法我才意识到: How to render multiple action views?
我正在使用类似的东西:
public function snapshotAction () {
$content = $this->view->action('run', 'report');
...etc...
}
答案 0 :(得分:7)
有一个view helper called 'action'可能会有所帮助。您指定控制器和操作以及参数并返回结果。帮助程序创建一个新的调度循环,所以如果你经常使用它会产生性能影响(我不担心性能,直到有证据表明它会导致问题)。
答案 1 :(得分:0)
看看this other post。 Zend_Cache类可能只是帮助您找到所需内容。