我在使用Zend Framework中的自动加载器时遇到了问题(我认为)。我相信这不一定是自动装带器的不正确行为,但也许是我遗漏的东西。
目前我有一个APPLICATION_PATH,如下所示:
/home/amurray/NetBeansProjects/MyProject/application
我在该路径下有几个布局:
APPLICATION_PATH . /layouts/scripts/layout.phtml
APPLICATION_PATH . /layouts/scripts/layouthome.phtml
etc..
现在,当我尝试在控制器中切换布局时:
$this->_helper->layout->setLayout('/home/amurray/NetBeansProjects/MyProject/application/layouts/scripts/layouthome');
-or-
$this->_helper->layout->setLayout(APPLICATION_PATH . '/layouts/scripts/layouthome');
我收到错误找不到脚本,错误消息显示它正在将我的驼峰案例目录名称(在上面使用的两种方法中)转换为小写的虚线目录名称:
eg: NetBeansProjects = net-beans-projects
明显的原因是它无法找到路径。但是,如果我不尝试更改脚本,默认布局(layout.phtml)工作正常(在我的ini配置中设置)
我认为自动加载器导致了这个问题,但我不确定为什么默认有效,但切换导致自动加载器更改目录。
答案 0 :(得分:2)
你只需使用
$this->_helper->layout->setLayout('layout.phtml'); //no paths
并在application.ini(或bootstrap)中设置布局路径
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"