ビューを更に考える (1/7)
作成:2010-02-17 15:37
更新:2010-05-10 19:10
更新:2010-05-10 19:10
■レイアウトの仕組み
今回は、ビューについてもう少し掘り下げていくことにしましょう。まずは、「レイアウト」についてです。
実際にWebアプリを作ってみると、ビューの表示が、あらかじめ用意されたレイアウトによって整形されて表示されることに気がつきます。これは、CakePHPに用意されている、レイアウト用のテンプレートによるものです。
CakePHPでは、ページはまずベースとなるレイアウト・テンプレートによって全体的なレイアウトが用意されます。そして、各アクションごとに用意されるテンプレート(index.ctpなどです)は、そのレイアウト・テンプレートの中にはめ込まれて表示されるようになっているのです。
このレイアウトの設定は、コントローラーに用意される2つのメンバー変数によって設定されます。それは以下のようなものです。
$autoLayout――レイアウト・テンプレートを使って自動的にページをレイアウトするかどうかを指定するものです。trueだとレイアウトを行い、falseにすると行いません。デフォルトではtrueになっています。
$layout――使用するレイアウト名を指定するものです。自分で独自にレイアウトを作成した場合には、これでそのレイアウトを設定します。
レイアウトを行わないとどうなるか、一度試してみましょう。コントローラーに、以下のメンバー変数を追加してみてください。ページがレイアウトされずに表示されます。
実際にWebアプリを作ってみると、ビューの表示が、あらかじめ用意されたレイアウトによって整形されて表示されることに気がつきます。これは、CakePHPに用意されている、レイアウト用のテンプレートによるものです。
CakePHPでは、ページはまずベースとなるレイアウト・テンプレートによって全体的なレイアウトが用意されます。そして、各アクションごとに用意されるテンプレート(index.ctpなどです)は、そのレイアウト・テンプレートの中にはめ込まれて表示されるようになっているのです。
このレイアウトの設定は、コントローラーに用意される2つのメンバー変数によって設定されます。それは以下のようなものです。
$autoLayout――レイアウト・テンプレートを使って自動的にページをレイアウトするかどうかを指定するものです。trueだとレイアウトを行い、falseにすると行いません。デフォルトではtrueになっています。
$layout――使用するレイアウト名を指定するものです。自分で独自にレイアウトを作成した場合には、これでそのレイアウトを設定します。
レイアウトを行わないとどうなるか、一度試してみましょう。コントローラーに、以下のメンバー変数を追加してみてください。ページがレイアウトされずに表示されます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
public $autoLayout = false;
※関連コンテンツ
「初心者のためのCakePHP 1.3 プログラミング入門」に戻る