如何在控制器内的变量中捕获default.phtml

时间:2012-04-26 23:45:06

标签: zend-framework zend-view zend-layout

我有一个简单的问题......我怎样才能将project / application / layouts / scripts / default.phtml中的default.phtml的内容呈现给变量,所以我可以使用它的html。

在索引控制器中,使用一个名为test的动作和一个phtml文件,这将起作用:

$html = $this->view->render('index/test.phtml');

但是,当然,这不是:

$htmlDefaultLayout = $this->view->render('default.phtml');

由于default.phtml不在任何控制器内,我猜。

有没有好方法呢?

2 个答案:

答案 0 :(得分:3)

您可以停止渲染并抓取输出:

$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$this->view->addScriptPath(APPLICATION_PATH . '/layouts/scripts/'); //default layout path
$htmlDefaultLayout = $this->view->render('default.phtml');

答案 1 :(得分:2)

您可以添加Zend_View查看视图的路径,以便您可以呈现default.phtml文件。

示例:

// add the layout directory to the path
$this->view->addScriptPath(APPLICATION_PATH . '/layouts/scripts/');

$htmlDefaultLayout = $this->view->render('default.phtml');

在Zend_View中添加到scriptPath的最后一个路径是第一个被检查的路径(LIFO)。

请参阅View Script Paths

相关问题