Symfony2「カスタマイズ編(3) フラッシュメッセージの表示」

Symfony2「カスタマイズ編(3) フラッシュメッセージの表示」

フラッシュメッセージの実装方法

【フラッシュメッセージの機能追加】

Defaultコントローラの該当actionにフラッシュメッセージを登録する処理を追加

vim src/My/BlogBundle/Controller/DefaultController.php

public function newAction()
{
    // ...
    $this->get('session')->setFlash('my_blog', '記事を追加しました');
    return $this->redirect($this->generateUrl('blog_index'));
    // ...
}

public function deleteAction($id)
{
    // ...
    $this->get('session')->setFlash('my_blog', '記事を削除しました');
    return $this->redirect($this->generateUrl('blog_index'));
    // ...
}

public function editAction($id)
{
    // ...
    $this->get('session')->setFlash('my_blog', '記事を編集しました');
    return $this->redirect($this->generateUrl('blog_index'));
    // ...
}

【テンプレートの修正】

共通の継承元である、index.html.twigを修正

$ vim src/My/BlogBundle/Resources/views/Default/index.html.twig
{# … #}
{% if app.session.hasFlash(‘my_blog’) %}
<div style="background-color:yellow;color:red;font-weight:bold;">
{{ app.session.flash(‘my_blog’) }}
</div>
{% endif %}

<h1>Blog posts</h1>
{# … #}

【ブラウザで確認】

新規投稿、編集、削除時にフラッシュメッセージが表示されることを確認する

【参考】

ref. カスタマイズ編(3) フラッシュメッセージの表示