CakePHPで任意のviewファイルをrenderする方法

Controllerをまたいで共通のviewを使いたいなぁってな事があって少し調べてみたことのメモです。

Controller内で

$this->render(view名);

って書いた場合のview名は、各Modelに対応するview用ディレクトリ内にviewファイルが存在する事を前提としていますので、これでは巧くいきません。

Modelに関係なく任意のviewファイルを指定したい場合は、render関数の第三引数を使うとokです。

$this->render(null, null, VIEWS.'hoge'.DS.'hoge.thtml')

こんな感じでフルパスを指定してやります。必要に応じて第2引数のlayout指定をしてあげても良いでしょう。ちなみに、VIEWSはapp/viewsディレクトリのこと。その他、パスのdefineは cake/config/paths.php に一覧があるので参考になると思います。