CakePHP でレイアウトを変更する場合はメンバ変数の $this->layout を変更する

CakePHP でレイアウトを変更したいことはありませんか。私の場合は管理画面などを作る時に別途違うレイアウトを用意して管理画面を作成します。

CakePHP で他のレイアウトを用意する時は app/View/Layout 以下に foo.ctp のように作成すれば良いです。また foo/bar.ctp のようにディレクトリ内に収めることも可能です。

そうして作成したレイアウトを使う場合はコントローラーなどで $this->layout に以下のように入れれば良いです。

1
$this->layout = 'foo';

ディレクトリ内に格納している場合は以下のようにします。

1
$this->layout = 'foo/bar';

これは各アクションで実行しても良いですし、beforefilter() で事前に書き換えても構いません。この記事を書いている現在は CakePHP 2.1 を使用していますが、現段階ではこの方法で書き換えることができています。よろしければ参考にしてください。

コメント

コメントは受け付けていません。