違うレイアウトでも同じデザインの部品を使用することがありますが、その場合に使用するといいのがエレメントです。

エレメントを使用するには

/app/views/elements/

の中に拡張子「.thtml」をつけたファイルを作成します。

エレメントを使用するレイアウト内で

<?php echo $this->renderElement('hoge'); ?>

と書くとエレメントが表示されます。

例えば、ログインフォーム用のエレメントを

/app/views/elements/login.thtml

と作成した場合は

<?php echo $this->renderElement('login'); ?>

と書きます。

また、エレメント内ではそのままではデータにアクセスできないため、
エレメント内でデータを参照したい場合はエレメンにデータを渡さないといけません。

<?php echo
$this->renderElement('login', array("user" => $user));
?>

と、データ配列を渡してエレメントを呼ぶことによりエレメント内で

<?php echo $user; ?>

のようにアクセスできます。

下記の記事が参考になります。
CakePHP の view の elements がアクセスできる変数
cakePHPのマニュアル 8.1.2 エレメント

関連する投稿