2007年

CakePHP でコントローラ名以外の view を指定する方法 このエントリーを含むはてなブックマーク

CakePHP Add comments

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 を指定する方法”

  1. CakePHP でビューでメール本文を作成する方法 | Sun Limited Mt. Says:

    [...] 前回の記事でメール用のビューを管理する方法を書きましたが、 今回はビューを使用してメール本文を作成する方法です。 [...]

  2. CakePHPでビューの指定 « cakePHP,Subversion,Ajaxのメモ Says:

    [...] http://www.syuhari.jp/blog/archives/14 [...]

Leave a Reply

Additional comments powered by BackType

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン