Posts tagged app

CakePHP のエレメント

2

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

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

/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 エレメント

CakePHP でレイアウトを変更する

1

レイアウトを変更するには

/app/views/layouts/default.thtml

を変更すればOK。

コントローラ毎などにレイアウトを変更したいときは

/app/views/layouts/hoge.thtml

などとレイアウトを作成して、コントローラで

var $layout = "hoge.thtml";

とレイアウトを指定する。

このレイアウトの中でタイトルタグを

<title><?php echo $title_for_layout?></title>

としていれば、

$this->pageTitle('このページのタイトル');

とコントローラで指定すれば、アクション毎にタイトルを変更できる。

Go to Top