CakePHP3で部分的な共通テンプレートを作成する方法

CakePHP3で部分的な共通テンプレートを作成する方法

262 回閲覧されました

みなさんこんにちは、jonioです。

CakePHP3で全体のレイアウトの共通点プレートはdefault.phpですが部分的な共通テンプレートを作成する方法を解説します。

Elementの下の階層にファイルを作成する

「CakePHPのプロジェクト > Template > Element」の下の階層にビューファイルを作成します。

サンプルで「demo.ctp」を作成したとします、中身に適当に何かを記述してください。

demo.ctpの利用

いたって簡単にできます。

demo.ctpを使いたいファイルで下記の記述をすればいいです。

<?= $this->element('demo') ?>

「demo」は共通ファイル名の「.ctp」を取っています。

これでdemo.ctpの内容を表示することができます。

demo.ctpに変数を使う場合

例えばdemo.ctpに下記の記述をしたとします。

<p>これは<?= $demo ?>です。</p>

また「<?= element(‘demo’) ?>」をUsersコントローラーのindexアクションで表示するビュー(index.ctp)に使ったとします。

この場合はindexアクションの中で「$demo = “デモ”;」みたいに置いてcompact関数でビューに渡せばいいです。

ビューで変数を使う場合にコントローラーから変数を渡すのと全く同じです。