デザインの枠(layout:レイアウト)を変更
デフォルトで使用されるデザインの枠組み(これをlayoutという)は$scaffoldを使用する場合はいいのかもしれないが、普通にウェブアプリを作っていくうえではNGだ。たいていの場合はちゃんとしたデザインをするはずなので、その枠を別途用意してやる必要がある。「cakephp layout」等で検索すると、いろいろなページが出てくるがやり方は一つ。
(インストールディレクトリ)/app/views/layouts/default.thtml
このファイル中では以下の2つの変数を設定しておく必要がある(正確には少なくとも本体用の変数を1つ:もう片方はタイトル用)。
<?php echo $title_for_layout;?>
<?php echo $content_for_layout;?>
いつも思うが、名前の付け方が無頓着。「$subject_for_layout」ってすれば文字数が同じになって美しいのに。まぁ、<title>タグにあわせているんだろう。
さて、ここまでの記述はどこのサイトでも書いてある。でも、これだと一つのサイトはすべて同じレイアウトでしか表現できなくなる。基本は同じにすべきだろうが、やはり複数のレイアウトが必要になる場合というのは少なからずある。この記述方法がほとんど書いていなかった。
どこかで見た記憶が・・・と思ったのでマニュアルを調べてみると書いてあった。
コントローラーの記述で、
var $layout=’default';
等として、拡張子を省略して指定すれば、各コントローラー毎に個別にレイアウトを指定できるようになる。
また一つ賢くなった♪。