CakePHPでViewの共通パーツを作る場合、Elementを使います。Elementの基本的な使い方と、入れ子構造にした場合の元のElementから読み込み先のElementへ変数を投げる方法を記載します。
Elementの読み込み
View/Elements の中に 「sample.ctp」というファイルを作って読み込む場合、Viewの中に下記のように記載します。
echo $this->element('sample');
Elementの中でディレクトリ分け
View/Elements のディレクトリにファイルをたくさん作ってしまうと使いにくいので、
View/Elements/Users
View/Elements/Posts
のようにディレクトリを分けたい場合があります。
View/Elements/Users/sample.ctp
というelementを作った場合、これを読み込むには
echo $this->element('Users/sample');
と記載します。
テンプレートに変数が含まれる場合
変数をViewからelementへ、elementからelementへ(入れ子構造)渡すには、$this->elemtnt(); の第二変数に連想配列で変数名と値を指定します。
echo $this->element('sample', ['test' => 'こんにちは']); //例1 echo $this->element('sample', array('data' => $data)); //例2