2011-01-25 58 views
4

我有一个控制器中的操作应该显示不同类型的输出,具体取决于窗体上的下拉列表中的值。Zend Framework切换视图在运行

我写了一个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)在文档中,它说你可以在控制器http://framework.zend.com/manual/en/zend.view.scripts.html的init()函数中设置视图,但这会为我不想要的整个控制器设置视图。

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

+0

你为什么不希望为整个控制器的看法?在单个请求期间您是否在该控制器中调用多个动作? – jah 2011-01-25 16:01:30

回答

7

如果你只是想改变要呈现的模板,使用:

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