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関数でビューに渡せばいいです。
ビューで変数を使う場合にコントローラーから変数を渡すのと全く同じです。