我在控制器中有一个动作,它应该显示不同类型的输出,具体取决于表单下拉列表中的值。
我为不同的视图类型编写了一个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()函数中设置视图,但这会设置我不想要的整个控制器的视图。
如何更改此操作的输出类型?
答案 0 :(得分:7)
如果您只想更改要渲染的模板,请使用:
$this->_helper->viewRenderer('viewscripthere');