Model view controller Zend框架在操作中切换视图

Model view controller Zend框架在操作中切换视图,model-view-controller,zend-framework,view,Model View Controller,Zend Framework,View,我在控制器中有一个动作,它应该根据窗体上下拉列表中的值显示不同类型的输出 我已经为不同的视图类型编写了一个Templater对象(扩展自Zend_View_Abstract) 我已尝试运行以下代码: public function generateDocumentAction() { //...some code to set $view depending on post data // e.g. $view = new TemplaterOdt(); //vi

我在控制器中有一个动作,它应该根据窗体上下拉列表中的值显示不同类型的输出

我已经为不同的视图类型编写了一个Templater对象(扩展自Zend_View_Abstract)

我已尝试运行以下代码:

public function generateDocumentAction()
{
    //...some code to set $view depending on post data        
    // e.g. $view = new TemplaterOdt(); //view as an OpenOffice document

    $this->_helpers->getHelper('viewRenderer')->setView($view);

    $this->view->myvar = $form->getValue('some_value');
}
但是,
$this->view
仍然是在/public/index.php中设置的默认模板(Smarty templater)

我在文档中查看过,它说可以在控制器的init()函数中设置视图,但这会为整个控制器设置视图,我不希望这样


如何更改此操作的输出类型?

如果您只想更改要呈现的模板,请使用:

$this->_helper->viewRenderer('viewscripthere');

为什么不为整个控制器设置视图?在单个请求过程中,您是否在该控制器中调用多个操作?我建议在
引导
或控制器插件(而不是控制器)中设置此操作。控制器正在执行与模型中一个对象相关的所有操作,即添加、编辑、删除,并且它们需要显示HTML。