Zend Framework で Smarty をレンダリングする方法
勘違いしていた・・。
前回 Smarty で Layout 機能を使って、テンプレートを表示する場合に、以下の様に書いた。
<?php /** * postDispatch * * @access protected * @return void */ public function postDispatch() { parent::postDispatch(); $contents = $this->view->render($this->_contents); $this->view->setScriptPath($layout); $this->view->assign('contents', $contents); echo $this->view->render($layout); }
viewRenderer->setNoRender(); で自動レンダリングを
オフにした場合は、自分でレンダリングしないといけない。
最後の echo $this->view->render($layout);
という書き方が規約通りでなかった。
ドキュメントを読むと、レスポンスオブジェクトに
突っ込むのが正しいようだ。
http://framework.zend.com/manual/ja/zend.controller.response.html
という訳で次の様に書かなくてはいけないみたい。
<?php $this->getResponse() ->setBody($this->view->render($layout));
うーむ。。。まだまだドキュメントの読み方が甘い。。。orz