2

我有一个简单的问题...如何将 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 不在任何控制器内,我猜。

有什么好的方法吗?

4

2 回答 2

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');
于 2012-04-27T00:07:59.210 回答
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)。

请参阅查看脚本路径

于 2012-04-27T01:45:50.277 回答