我试图给我的表单一个视图脚本装饰器,如:
public function setupViewScript() {
//Work out the path based on the class name here
//****
//Set decorator
$form_decorator->setViewScript($form_view_path);
$this->setDecorators( array( array('ViewScript', array('viewScript' => $form_decorator->getViewScript()))));
}
但是,我不想使用默认模块;我想根据表单的类名加载特定的视图脚本。由于我可能在多个模块中使用特定表单,因此我希望所有表单视图脚本都在./application/form/views/scripts /.
然而,我无法将模块设置为“form”,而不是当前模块。任何人都可以提供见解吗?
由于
答案 0 :(得分:3)
我查看了Zend的代码,发现你可以设置viewscript的模块,如下例所示:
$this->setDecorators(array(
array('ViewScript', array('viewScript' => '<viewscriptname>', 'viewModule' => '<modulename>')),
'Form'
));
这应该可行,我也在我的项目中使用它。
答案 1 :(得分:0)
你试过这个解决方案吗?
$request = Zend_Controller_Front::getInstance()->getRequest();
$request->setModuleName('form');
我没有检查它,但认为它应该工作