如何在模块中不可用时从默认加载视图模板? Zend框架

时间:2010-03-20 14:25:24

标签: zend-framework templates views module

我的Zend Framework问题... 遗憾的是,经过3个小时的搜索后没有解决:

我有一个模块化的Zend应用程序,如果我在被调用的模块中有我的模块和错误模板,它工作正常。 如果我从视图/脚本/中删除错误/ error.phtml,则会出现致命错误,表示没有目录。

简而言之:在这种情况下,如何定义Zend回归默认模块?

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

渲染视图时,视图渲染器会查看视图脚本路径的“堆栈”。将脚本路径添加到视图的顺序决定了查找顺序。所以:

$view = new Zend_View();
$view->addScriptPath(APPLICATION_PATH . "/default/views/scripts/")
     ->addScriptPath(APPLICATION_PATH . "/modules/module/views/scripts/");

在上面,它首先会查看“/ modules ...”,然后是“/ default ...”,然后它实际上会查找脚本运行的当前目录中的视图你的视图脚本。

您还可以使用相同的方法添加布局路径。我发现另一个有用的提示是更改viewScriptPathSpec,它告诉视图要呈现的文件路径:

$this->_helper->viewRenderer->setViewScriptPathSpec(":controller/:action.:suffix");

这是我认为的默认设置,但如果您愿意,可以更改它。例如,我有一个CMS模块,无论控制器名称是什么,它总是在“crud”视图脚本文件夹中呈现脚本:

$this->_helper->viewRenderer->setViewScriptPathSpec("crud/:action.:suffix");