コントローラーとビュー (4/7)
作成:2010-02-17 13:58
更新:2010-05-10 19:02
更新:2010-05-10 19:02
■ビューの仕組み
実際に、http://localhost/cakesample/sample/にアクセスしてみて、ちょっと驚いたかも知れません。表示されるページは、紺色のヘッダーとフッターを備えていて、きっちりとレイアウトされた状態になっています。(下図参照)
実は、CakePHPでは、標準で「レイアウト」の機能が用意されています。レイアウトの土台となるテンプレートが用意されており、ユーザーが作ったビューは、その中にコンテンツとしてはめ込まれて表示されるのです。
MVCアーキテクチャーでは、プログラムの処理とページの表示は、CとVとして明確に分けられています。が、実際問題として、コントローラーで処理を行った結果をビューで表示する、ということはよくあるでしょう。そこで、コントローラーからビューへ値を受け渡すための仕組みを用意してあるのです。
実は、CakePHPでは、標準で「レイアウト」の機能が用意されています。レイアウトの土台となるテンプレートが用意されており、ユーザーが作ったビューは、その中にコンテンツとしてはめ込まれて表示されるのです。
○コントローラーからビューへの値の受け渡し○
ここで作ったサンプルでは、もう1つ需要なポイントが有ります。それは「値の受け渡し」です。テンプレートを見てください。ここでは、<?php echo $title_text; ?>こんな具合にして、$title_textという変数の値を書き出していますね。が、テンプレートのどこを見ても、こんな変数はありません。これは、実はコントローラーで用意されたものなのです。indexメソッドを見てみると、
$this->set("title_text","Sample Page");こんな処理が書かれていることがわかります。これが、ビューに渡す変数を設定している部分なのです。ビューに何かの値を渡したい場合、コントローラー側で以下のように実行をしてやります。
$this->set( 変数名 , 値 );これで、ビューのテンプレートでは第1引数の変数が用意されるようになります。
MVCアーキテクチャーでは、プログラムの処理とページの表示は、CとVとして明確に分けられています。が、実際問題として、コントローラーで処理を行った結果をビューで表示する、ということはよくあるでしょう。そこで、コントローラーからビューへ値を受け渡すための仕組みを用意してあるのです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ
「初心者のためのCakePHP 1.3 プログラミング入門」に戻る