Zend Framework切换视图

时间:2011-01-25 15:13:26

标签: 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(); //view as an OpenOffice document

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

    $this->view->myvar = $form->getValue('some_value');
}

但是$this->view仍然是默认的(Smarty模板),它在/public/index.php中设置

我查看了文档,它说你可以在控制器http://framework.zend.com/manual/en/zend.view.scripts.html的init()函数中设置视图,但这会设置我不想要的整个控制器的视图。

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

1 个答案:

答案 0 :(得分:7)

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

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