model-view-controller - Zend 框架在操作中切换 View

标签 model-view-controller zend-framework view

我在 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/

相关文章:

ruby-on-rails - 类 CommentsController 的父类(super class)不匹配(TypeError),重命名的最佳方法?

javascript - MVC 和显示/隐藏面板?

model-view-controller - Entity Framework 和缓存 - 更改会追溯到缓存

zend-framework - 我应该在 Zend_Db 中的什么地方实现缓存?

php - 如何配置 Zend_Form 以使用数组表示法?

django - 我如何在 Django View 中传递可选参数

ruby-on-rails - Ruby/Rails - 是否可以在 View 中执行 ruby​​ 计算?

java - MVC模式中Main类的位置和职责

php - 同一数据库上的多个应用程序实例

Swift:切换 View 后使用 UILongPressGestureRecognizer 时应用程序崩溃