CakePHP Viewのレイアウト設定方法

CakePHPでは、全体、コントローラごと、アクションごとに利用するViewのテンプレートを設定できる。
初期状態のままだと
app/View/Layouts/defauly.ctp
がセットされる。

デザインを変更する場合は、まず新しいctpを作成し
各アクション、各コントローラに新しいctp利用をセットする。

$this->layout = "********";

app/View/Layouts/の
********.ctpを読み込みます。
各コントローラのfunction内に記述すれば、そのfunctionで定義しているアクションが指定したレイアウトになります。
各コントローラのfunction beforeFilter()に記述すれば、そのコントローラ全体が指定したレイアウトになります。
AppController.phpのfunction beforeFilter()に記述すれば、サイト全体が指定したレイアウトになります。

ctpファイル内で別のctpファイルを呼び出すこともできます。
例えばヘッダー、フッター、サイドメニューなど。

<?php echo $this->element( 'header' ); ?>

各部品なので、
app/View/Elements/
に格納するのが一般的でしょうか?私はそうしている。
Elementsフォルダ内にさらに階層を設けて設定することも可能です。

以上。

コメントを書く