バージョン 2.7.0 で追加: SessionHelper::flash()
を置き換えました。
FlashHelper は、 FlashComponent によって
$_SESSION
にセットされたフラッシュメッセージを表示するために使用します。
FlashComponent と FlashHelper は、
主にフラッシュメッセージを表示するためのエレメントを使用します。 Flash エレメントは、
app/View/Elements/Flash
ディレクトリの配下に配置されます。
CakePHP の App テンプレートに success.ctp
と error.ctp
があることを
確認してください。
FlashHelper は、非推奨となった SessionHelper
の flash()
メソッドを
置き換えるヘルパーです。
フラッシュメッセージを表示するためには、FlashHelper の render()
メソッドを
使用します。
<?php echo $this->Flash->render() ?>
デフォルトでは、CakePHP は、フラッシュメッセージのためにセッション中の "flash" キーを 使用します。しかし、 FlashComponent の中でフラッシュメッセージを設定した時にキーを指定した場合、そのキーを指定して表示します。
<?php echo $this->Flash->render('other') ?>
FlashComponent 内で設定したオプションを上書きすることができます。
// コントローラの中で
$this->Flash->set('The user has been saved.', array(
'element' => 'success'
));
// ビューの中で、 success.ctp の代わりに great_success.ctp を使用
<?php echo $this->Flash->render('flash', array(
'element' => 'great_success'
));
注釈
CakePHP は、デフォルトではフラッシュメッセージ中の HTML はエスケープしません。
もし、リクエストやユーザーデータをフラッシュメッセージに含める場合は、
メッセージを整形するときに h
でエスケープするべきです。
バージョン 2.10.0 で追加: フラッシュ は 2.10.0 ではメッセージを積み重ねます。
複数のフラッシュメッセージをセットした場合、 render()
を呼び出すと、各メッセージは
メッセージが設定された順序で、それ自身の要素で描画されます。
利用可能なオプション配列に関する詳しい情報は、 FlashComponent セクションをご覧ください。