【问题标题】:Zend Framework switching views in actionZend Framework 切换视图在行动
【发布时间】:2011-06-15 06:32:46
【问题描述】:

我在控制器中有一个动作,它应该根据表单下拉列表中的值显示不同类型的输出。

我已经为不同的视图类型编写了一个 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 模板)

我查看了文档,它说您可以在控制器 http://framework.zend.com/manual/en/zend.view.scripts.html 的 init() 函数中设置视图,但这会为整个控制器设置我不想要的视图。

如何仅更改此操作的输出类型?

【问题讨论】:

  • 为什么不想为整个控制器设置视图呢?您是否在单个请求期间在该控制器中调用了多个操作?
  • 我建议在Bootstrap 或控制器插件中设置它,而不是控制器。
  • 控制器正在做与模型中的一个对象相关的所有事情,即添加、编辑、删除,它们需要显示 HTML。

标签: model-view-controller zend-framework view


【解决方案1】:

如果您只想更改要呈现的模板,请使用:

$this->_helper->viewRenderer('viewscripthere');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    相关资源
    最近更新 更多