我在控制器中有一个操作,根据表单中下拉列表的值显示不同类型的输出。
我编写了一个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中设置。
我查看了文档,发现可以在控制器的init()函数中设置视图http://framework.zend.com/manual/en/zend.view.scripts.html,但这会将视图设置为整个控制器,而我不想这样做。
我该如何仅更改此操作的输出类型?
Bootstrap
或控制器插件中,而不是控制器中。 - takeshin