Zend framework 如何捕获Zend view输出而不是实际输出它

Zend framework 如何捕获Zend view输出而不是实际输出它,zend-framework,capture,zend-view,Zend Framework,Capture,Zend View,问题:有时在zend控制器中,我们不希望脚本直接输出,而是希望脚本的内容。例如:当我们需要将视图脚本的结果html输出包含在另一个结构(如JSON或XML)中,以便在客户端进行处理时 我在stack overflow中找到了结果,但由于它位于不同的上下文中,所以速度不是很快。我已经为此挣扎了两天了。结果很简单: // in our controllers' action method $this->_helper->layout()->setLayout('em

问题:有时在zend控制器中,我们不希望脚本直接输出,而是希望脚本的内容。例如:当我们需要将视图脚本的结果html输出包含在另一个结构(如JSON或XML)中,以便在客户端进行处理时

我在stack overflow中找到了结果,但由于它位于不同的上下文中,所以速度不是很快。我已经为此挣扎了两天了。结果很简单:

    // in our controllers' action method
    $this->_helper->layout()->setLayout('empty');    // disable layout
    $this->_helper->viewRenderer->setNoRender(true); // make sure the script is not being rendered

    // any of your code here
    $html = $this->view->render('projects/climate.phtml');  // return the view script content as a string
    $json = array('html'=>$html, 'initData'=>'my other needed data');
    echo json_encode($json);
我希望这是清楚的,对某人有用。

尝试使用

public myAction () {
    $this->_helper->json(array(
        'html'    => $this->view->render('projects/climate.phtml'),
        'initData'=> 'my other needed data',
    ));
}
Json操作助手通常会

  • 禁用视图渲染器
  • 禁用布局
  • json\u编码
    数组

嗨,斯拉夫人。欢迎您在这里分享您的知识,但这是一个问答网站。你应该把它作为对原始问题的评论或回答发布。朱利安!你的版本有点薄。