CakePHP3で部分テンプレートを使う

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+CakePHP 3.5.8。

複数のテンプレートで共通する部分を部分テンプレートとして読み込みたいと思い、作り方を調べたのでメモ。

ファイル名は任意で良いのですが、今回は、以下のファイルを、partial_template.ctpという名前で、src/Template/Elementディレクトリに保存する。

<div id="partial_template">部分テンプレートです。</div>


■呼び出す
テンプレート側で、

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

と書いて出力すると部分テンプレートの中身が表示されます。


■テンプレートの変数を部分テンプレートに渡す場合

部分テンプレート側

<div id="partial_template"><?= $username ?>さん、こんにちは。</div>

テンプレート側

<?php
	$username = "taro";

	echo $this->element('partial_template', ['username' => $username]);
?>

呼び出しているテンプレート側でechoを用いて、出力していますが、部分テンプレート側でechoを使って、(echoの中でechoを使っているような構造だけれど)変数を表示してもエラーには特になりません。

参考リンク
CakePHPで部分テンプレート(エレメント)を使う - データ分析エンジニアのブログ