[CakePHP]1.3系でsetFlashのレイアウト(エレメント)を変更する方法

CakePHP1.3系で、以前「[CakePHP]Session::setFlash()したメッセージをオリジナルのレイアウトで表示する | HappyQuality」で書いた方法を試したらそのままでは使えなかったので、1.3で使える方法をメモ。

例によってバージョン2系では、仕様が変わっている可能性があるので注意してください。

コントローラでSession->setFlashのレイアウトを指定する

hoge_controller.php

// 第1引数にメッセージ、第2引数にレイアウト(エレメント)を指定できる(省略された場合はSessionヘルパーのflashメソッドのdefaultソースで吐き出される)
// この場合hoge_flash.ctpというレイアウトを使って出力する
$this->Session->setFlash("メッセージです", "hoge_template");

/views/elementsにレイアウトファイルを作成する

以前とは格納場所とメッセージを取得する変数が違っているみたい

app/views/elements/hoge_flash.ctp

// メッセージは$messageに格納されている
<div class="message error closeable">
	<span class="message-close"></span>
	<?PHP echo $message; ?>
</div>

後はSessionにMessage.flashがある場合に
Session->flash(); ?>
の記述の箇所でflashメッセージが出力される。

スポンサーリンク
336x280_1
336x280_1

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
336x280_1