我在 Controller 中有一个 Action ,它应该根据表单下拉列表中的值显示不同类型的输出。
我为不同的 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
仍然是/public/index.php 中设置的默认模板(Smarty 模板程序)我查看了文档,它说您可以在 Controller 的 init() 函数中设置 View http://framework.zend.com/manual/en/zend.view.scripts.html但这将为我不想要的整个 Controller 设置 View 。
如何仅更改此操作的输出类型?
最佳答案
如果您只想更改要呈现的模板,请使用:
$this->_helper->viewRenderer('viewscripthere');
关于model-view-controller - Zend 框架在操作中切换 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4795129/