環境
PHP 7.2.21
CakePHP 2.10.18
やりたいこと
Elements以外のディレクトリにエレメンツテンプレートを置いた場合や別Appにあるエレメンツテンプレートを呼び出したい
やったこと
cdコマンドと同じ指定を使うことでデフォルトである「app/View/Elements」以外の別階層を指定できる
※CakePHPの設計思想は**「設定より規約」(convention over configuration)**に賛同しているのであまり使いどころはないかもですが
同じAppの別ディレクトリのエレメンツテンプレートを使用
test/app/View/ から test/app/View/Form/default.ctp を呼ぶ
test.ctp
<?php
$elementsDir = '../../View/Form/default';
// 通常
echo $this->element($elementsDir);
// 変数渡しがある場合
echo $this->element($elementsDir, [
'var' => 'hoge',
'var2' => 'fuga',
]);
// もちろん変数を使わずそのまま呼び出しも可能
echo $this->element('../../View/Form/default');
?>
別Appのエレメンツテンプレートを使用する場合
test/app/View/ から test_2/app/View/Elements/form.ctp を呼ぶ
test.ctp
<?php
$elementsDir = '../../../../test_2/app/View/Elements/form';
// 通常
echo $this->element($elementsDir);
// 変数渡しがある場合
echo $this->element($elementsDir, [
'var' => 'hoge',
'var2' => 'fuga',
]);
?>