Symfony2「カスタマイズ編(3) フラッシュメッセージの表示」
2011年12月13日Table of Contents
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>
{# … #}
【ブラウザで確認】
新規投稿、編集、削除時にフラッシュメッセージが表示されることを確認する