では、実際にやってみましょう。「
Template」フォルダ内に、新たに「
Helo」フォルダを作って下さい。
この中に「
index.ctp」というファイルを作り、下のように内容を記述しておきましょう。
<div>
<h3>Index Page</h3>
<ul class="side-nav">
<li>This is sample.</li>
</ul>
</div>
これでテンプレートは完成です。
HeloControllerは、
indexの処理をすべて消去し、空のメソッドに戻しておきましょう。こんな具合ですね。
public function index()
{
}
これで、
http://localhost:8765/helo/ にアクセスすると、用意したテンプレートが画面に表示されます。
実際に表示してみるとわかりますが、このWebページでは、タイトルなどが色付きの背景色で表示されます。また「
Document」「
API」といったリンクも付けられていますし、右下にはCakePHPのアイコンのようなものも表示されています。
これらは、あらかじめCakePHPに用意されているレイアウト用のテンプレートを使ってページが作成されているためです。「
Template」フォルダ内の「
Layout」フォルダの中にある「
default.ctp」がそれで、このページ全体のレイアウトを記述したテンプレートの中に、各アクション用に用意されているテンプレートのコンテンツを嵌めこむようにしてページが作成されます。
では、表示するページはどうやって指定されロードされているのか? 実は、そんな処理は不要です。
HeloControllerの
indexメソッドには、何の処理も書かれたはいません。
CakePHPでは、特定のアクションにアクセスされると、「
Template」フォルダ内から、そのアプリケーション名のフォルダの中にあるアクション名のテンプレートを自動的に読み込みレンダリングします。したがって、テンプレートのロードやレンダリングなどの処理をプログラマが用意する必要はありません。何もしなくても、勝手に指定のテンプレートを読み込み表示してくれます。(もちろん、プログラム的にこれらを指定する方法もあります)