This document is for a version of CakePHP that is no longer supported. Please upgrade to a newer release!

FlashHelper

class FlashHelper(View $view, array $config = array())

バージョン 2.7.0 で追加: SessionHelper::flash() を置き換えました。

FlashHelper は、 FlashComponent によって $_SESSION にセットされたフラッシュメッセージを表示するために使用します。 FlashComponent と FlashHelper は、 主にフラッシュメッセージを表示するためのエレメントを使用します。 Flash エレメントは、 app/View/Elements/Flash ディレクトリの配下に配置されます。 CakePHP の App テンプレートに success.ctperror.ctp があることを 確認してください。

FlashHelper は、非推奨となった SessionHelperflash() メソッドを 置き換えるヘルパーです。

フラッシュメッセージの表示

フラッシュメッセージを表示するためには、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 セクションをご覧ください。