Model view controller Zend框架在操作中切换视图
我在控制器中有一个动作,它应该根据窗体上下拉列表中的值显示不同类型的输出 我已经为不同的视图类型编写了一个Templater对象(扩展自Zend_View_Abstract) 我已尝试运行以下代码:Model view controller Zend框架在操作中切换视图,model-view-controller,zend-framework,view,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(); //vi
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)
我在文档中查看过,它说可以在控制器的init()函数中设置视图,但这会为整个控制器设置视图,我不希望这样
如何更改此操作的输出类型?如果您只想更改要呈现的模板,请使用:
$this->_helper->viewRenderer('viewscripthere');
为什么不为整个控制器设置视图?在单个请求过程中,您是否在该控制器中调用多个操作?我建议在
引导
或控制器插件(而不是控制器)中设置此操作。控制器正在执行与模型中一个对象相关的所有操作,即添加、编辑、删除,并且它们需要显示HTML。