get_sidebar(); //もしくは定義済みの定数と組み合わせて include TEMPLATEPATH . '/header2.php';とか書いたりしますが、CakePHPではどうやるんだろう?とおもってググッてみたら出てきた。
CakePHP View::element() | パン好きのエンジニア
ちょっと違うけど、”View::element()”というメソッドがあった。
Viewの中の一部をelementとして切り出すらしい。
viewフォルダの中を見てみたら確かに /view/element/ というディレクトリがあった。
試しにview内で echo $this->element(); としてみたら読み込むじゃないかァァ
まさに期待通り。
で、データも渡したいなぁと思ってマニュアル見たら
element(string $elementPath, array $data, bool $loadHelpers)お、二番目に array $data がある。CakePHP的に考えれば、こうゆうときは array('変数名' => '中身') でしょう。と思って試してみたらこれも期待通り!こんな感じでview.ctpからelement.ctpに渡せる
$this->element('sidebar', array('hoge' => 'Hello!'));もちろんcontrollerでsetした値もそのまま使えるし、繰り返しHTMLパターンがあるなら管理しやすい……と、ここまで書いてて、よく見たら詳しく日本語化されたマニュアルを発見!
http://book.cakephp.org/ja/view/97/Elements
おお!キャッシュも使えるのか♪至れり尽くせりだな。
0 コメント:
コメントを投稿