Skip to content
このドキュメントは、CakePHP 2.x の PHP 8 対応フォーク pieceofcake2/cakephp のものです。 フォークについて

FlashHelper ​

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

Added in version 2.7.0

SessionHelper::flash() を置き換えました。

FlashHelper は、 FlashComponent によって $_SESSION にセットされたフラッシュメッセージを表示するために使用します。 FlashComponent と FlashHelper は、 主にフラッシュメッセージを表示するためのエレメントを使用します。 Flash エレメントは、 templates/Elements/Flash ディレクトリの配下に配置されます。 CakePHP 本体には default.ctp、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.', [
    'element' => 'success'
]);

// ビューの中で、 success.ctp の代わりに great_success.ctp を使用
<?php echo $this->Flash->render('flash', [
    'element' => 'great_success',
]);

NOTE

CakePHP は、デフォルトではフラッシュメッセージ中の HTML はエスケープしません。 もし、リクエストやユーザーデータをフラッシュメッセージに含める場合は、 メッセージを整形するときに h でエスケープするべきです。

Added in version 2.10.0

フラッシュ は 2.10.0 ではメッセージを積み重ねます。 複数のフラッシュメッセージをセットした場合、 render() を呼び出すと、各メッセージは メッセージが設定された順序で、それ自身の要素で描画されます。

利用可能なオプション配列に関する詳しい情報は、 FlashComponent セクションをご覧ください。

Based on the CakePHP Cookbook. Content licensed under CC BY-NC-SA 4.0. Not affiliated with the Cake Software Foundation.