CakePHP2でView/Elements以下にディレクトリを追加し、共通ページを管理する方法
2016/12/01
CakePHP2ではヘッダやフッタなどサイト共通のパーツは View の Elements(app/View/Elements/)以下で管理できますが、実は Elements 以下にディレクトリを作成し共通ファイルを管理することも可能です。
Elementsの使い方
ヘッダやフッタなどの例
ヘッダー(header.ctp)を共通化する場合、app/View/Elements/ 以下に header.ctp を作成し、以下のように Viewファイルに記述します。
1 |
echo $this->element('header'); |
これだけで、共通ファイルとして作成した header.ctp が読み込まれます。便利。
ここまでは基本。
応用と銘打つわけでもありませんが、Elements 配下をディレクトリで分け、ファイルを管理することも可能です。
app/View/Elements 以下にディレクトリを追加して管理
例えば、入力フォーム等で作成したデータを詳細表示するブロックを Elements で共通パーツとして管理し、複数のページで利用するなどが可能。
この場合、データの項目が追加されるなどされた場合、共通ファイルを変更するだけで済むというメリットも。
管理用ディレクトリを app/View/Elements/ 以下に作成します。
今回はテストということで「Tests」とします。
共通パーツを別ファイル(hoge.ctp)として作成し、app/View/Elements/Tests/ 以下に配置。
呼び出しは以下のように。
1 |
echo $this->element('Tests/hoge'); |
Testsから始めるのがミソ。
階層は深くなっても良いとの事ですので、制作が色々とはかどりますね。