CakePHP では HogeController::foo() に対するビューは
/app/views/hoge/foo.thtml
になります。
このときに、/app/views/hoge/foo2.thtml というビューを使用したいときは
HogeController::foo() で
$this->render('foo2');と指定すればOKです。
今回違うコントローラ名で管理しているビューを使用できないものかと
/cake/libs/view/view.php
を調べてみたところ
$this->render(null, 'layout', '/path/to/app/views/email/register.thtml');という方法で
/app/views/email/register.thtml
のビューを HogeController::foo() から使用できました。
render の第3引数に絶対パスで使用したいビューを指定すればOKです。
第1引数でビュー名を指定しますが、第3引数が指定されていると無視されます。
また、レイアウトは第2引数でそのまま指定できます。
あまり他のコントローラのビューを使用することはないと思いますが、
例えば、メール送信時に使用するビューを
/app/views/email/
などのディレクトリ名で管理するなどが用途として考えられます。
関連する投稿
2 Responses to “CakePHP でコントローラ名以外の view を指定する方法”
Leave a Reply
Additional comments powered by BackType




4月 1st, 2008 at 10:55 am
[...] 前回の記事でメール用のビューを管理する方法を書きましたが、 今回はビューを使用してメール本文を作成する方法です。 [...]
10月 12th, 2009 at 2:20 pm
[...] http://www.syuhari.jp/blog/archives/14 [...]