2011-01-25 30 views
4

フォーム上のドロップダウンの値に応じて異なるタイプの出力を表示するはずのコントローラ内にアクションがあります。Zendフレームワークでのビューの切り替え

さまざまなビュータイプの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

に設定されているデフォルトの1(Smartyのtemplater)である私が見てきましたドキュメントには、コントローラのinit()関数でビューを設定することができます。http://framework.zend.com/manual/en/zend.view.scripts.htmlしかし、これは望ましくないコントローラ全体のビューを設定します。

このアクションだけの出力タイプを変更するにはどうすればよいですか?

+0

は、なぜあなたは全体のコントローラのビューを設定したくありませんか? 1回のリクエストでそのコントローラで複数のアクションを呼び出していますか? – jah

+0

これはコントローラの代わりに 'Bootstrap'やコントローラプラグインで設定することをお勧めします。 – takeshin

+0

コントローラは、モデル内の1つのオブジェクトに関連するすべての処理、つまり追加、編集、削除を実行しており、HTMLを表示する必要があります。 – Hexdoll

答えて

7

あなただけレンダリングするテンプレートを変更したい場合は、使用:

$this->_helper->viewRenderer('viewscripthere'); 
関連する問題