开发者

Capture output of another action within current action?

I have been trying to find a way to capture the output (rendered view) of another action within the current action... something akin to output buffering.

The scenario is that I need to save a "snapshot" of a report. The data used in the report is ever-changing, and for whatever reason I need to actually save the view HTML rather than just a data array. I have created a snapshotAction(), and I want to somehow capture the output of the separate reportAction() within it. I don't want to render the reportAction() to the screen, I want it to render within my current action, before the action completes.

Is there any way to do this in ZF?


Correctly answered by Benedict Cohen below, but I didn't realize it until I saw this usage in the ZF mailing list archives: How to render multiple action views?

I am using something similar:

public fu开发者_StackOverflow社区nction snapshotAction () {
    $content = $this->view->action('run', 'report');
    ...etc...
}


There's a view helper called 'action' which may be helpful. You specify the controller and action and params and it returns the result. The helper creates a new dispatch loop so if you use it a lot it could have performance implications (I don't worry about performance until there's evidence that it's causing problems).


Take a look at this other post. The Zend_Cache classes may just help you find what you need.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜