我想为我的应用程序中的每个模块创建不同的视图脚本。我的结构看起来像那样:
-- application
-- modules
-- default
-- views
-- default
-- scripts
-- fluid
--scripts
我在Zend Controller Plugin中设置默认脚本路径,其中preDispatch()随请求执行:
$view->setScriptPath(sprintf('%s/modules/%s/views/%s/scripts', APPLICATION_PATH, $module, $views));
一切都很有效,直到我从视图中调用动作:
$this->action('activity-stream', 'index', 'observation');
应用程序抛出一条带有消息的异常:
路径中找不到脚本'index / activity-stream.phtml'(C:/ wamp / www / erp / application / modules / observation / views \ scripts /; C:\ wamp \ www \ erp \ application / modules /用户/视图/流体/脚本/)
看起来,当使用View Action Helper调用模块时,未正确设置脚本路径。知道如何实现这个目标吗?
答案 0 :(得分:0)
问题没有解决,但我以不同的方式对待我想要的东西。我的应用程序的任何模块中的每个控制器都继承了继承Zend_Controller_Action的自定义操作控制器。在那个自定义控制器里面我有这样的东西:
public function init() {
parent::init();
$module = $this->_request->getModuleName();
$config = new Zend_Config_Ini(APPLICATION_PATH . "/configs/modules.ini", $module);
$layout = isset($config->layout) ? $config->layout : 'default';
$views = isset($config->views) ? $config->views : 'default';
$this->view->layout()->setLayout($layout);
$this->view->setScriptPath(sprintf('%s/modules/%s/views/%s/scripts', APPLICATION_PATH, $module, $views));
}
这不是我想要的,但解决了我的问题。