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

Zend framework 如何在控制器内的变量中捕获default.phtml,zend-framework,zend-view,zend-layout,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->

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


有什么好方法吗?

您可以停止渲染并按如下方式获取输出:

$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');

您可以添加到
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_视图中添加到scriptPath的最后一个路径是第一个要检查的路径(LIFO)


请参阅。

一定没有理解这个问题。您正在尝试只获取模板的内容吗?还是要全局访问模板?嗨,迈克。。谢谢你的回答。。。问题是,我需要生成的html,即default.phtmlSo的内容。您是否希望生成模板的内容,使用实际设置的模板变量进行插值,并将渲染(就像在浏览器中查看)存储在变量中?是的,或多或少,我没有得到插值部分。实际上,由于请求是通过ajax进行的,所以默认布局被禁用。我需要的是以任何方式获取该布局的html内容,因为在操作中我更改了默认布局(内容、标题等),并将其与ajax调用的操作中生成的html一起发送。所以我可以在一个ajax调用中发送两个单独的HTML。谢谢Starx。这实际上是我第一次尝试,但问题是没有指向default.phtml的路径。