Zend Form ViewScript装饰器的设置模块

时间:2012-02-29 11:48:04

标签: php model-view-controller zend-framework zend-form decorator

我试图给我的表单一个视图脚本装饰器,如:

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”,而不是当前模块。任何人都可以提供见解吗?

由于

2 个答案:

答案 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');

我没有检查它,但认为它应该工作