Zend_Controller_Action から異なるテンプレートを呼び出す方法

via ブログが続かないわけ

上記のように便利な自動レンダリングだが、処理結果に応じて、別のテンプレート を出力したいこともあるだろう。
いくつか方法があるので、今回はそれを紹介する。

[PHP]Zend で自動レンダリングモードがオンの場合の、View スクリプトの切り替え手法。まとめ。 | ブログが続かないわけ

4. で紹介されている書き方の別な書き方。
Phwittr ではこの書き方をしてる。

<?php
public function loginAction()
{
    if($this->_isValid()) {
        $this->_helper->viewRenderer('user/login-complete');
    }
}

でも $this->render('user/login-complete'); の方がタイプ数少なくていいかもw*1
因に $this->render() は内部的には ViewRenderer が有効な場合、 $this->_helper->viewRenderer->render() を呼んでいる。


Zend Framework は色んな書き方ができて面白い。

*1:Zend Framework2.0 からは $this->viewRenderer()って書き方が出来る模様