2011-01-25 46 views
4

我有一個控制器中的操作應該顯示不同類型的輸出,具體取決於窗體上的下拉列表中的值。Zend Framework切換視圖在運行

我寫了一個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的templater)在文檔中,它說你可以在控制器http://framework.zend.com/manual/en/zend.view.scripts.html的init()函數中設置視圖,但這會爲我不想要的整個控制器設置視圖。

如何更改此操作的輸出類型?

+0

你爲什麼不希望爲整個控制器的看法?在單個請求期間您是否在該控制器中調用多個動作? – jah 2011-01-25 16:01:30

回答

7

如果你只是想改變要呈現的模板,使用:

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