端くれプログラマの備忘録 CakePHP [CakePHP] 通知メッセージを表示する

[CakePHP] 通知メッセージを表示する

SessionComponentを使って一回限りの通知をユーザに対して表示する方法。アプリ内の随所で使う必要があるので、きちんと理解しておこう。

以下、クックブックからの抜粋。

基本形

// controllerにて
$this->Session->setFlash('Your stuff has been saved.');
// view にて
echo $this->Session->flash();

// このように出力されます
<div id="flashMessage" class="message">
    保存しました
</div>

メッセージの種別(キー)を指定する

// bad message をセット
$this->Session->setFlash('Something bad.', 'default', array(), 'bad');

// good message をセット
$this->Session->setFlash('Something good.', 'default', array(), 'good');
// viewにて
echo $this->Session->flash('good');
echo $this->Session->flash('bad');

メッセージのエレメントを指定する

$this->Session->setFlash('Something custom!', 'flash_custom');
// app/View/Elements/flash_custom.ctp
<div id="myCustomFlash"><?php echo h($message); ?></div>

参考サイト

通知メッセージの作成 | セッション — CakePHP Cookbook 2.x ドキュメント
http://book.cakephp.org/2.0/ja/core-libraries/components/sessions.html#SessionComponent::setFlash