tkuchikiの日記

新ブログ https://blog.tkuchiki.net

Symfony2.1以降で、Twigにflash messageを表示させる際の書き方

Symfony2.3で、
Symfony\Component\HttpFoundation\Session\Session
の、getFlashs, setFlashs, getFlash, setFlash, hasFlash, removeFlash, clearFlash が削除されます。

公式ドキュメントの、
http://symfony.com/doc/master/components/http_foundation/sessions.html
を見ると新しい書き方が記載されているのですが、
Twigテンプレート中でも、hasFlashを使っているような箇所があったような。。。
でも、上記のページには載っていない。。。

ということで、調べて見たところ、
vendor/symfony/symfony/UPGRADE-2.1.md に載っていました。

 
Before:
  
```
{% if app.session.hasFlash('notice') %}
      <div class="flash-notice">
          {{ app.session.getFlash('notice') }}
      </div>
{% endif %}
```
After:
```
{% for flashMessage in app.session.flashbag.get('notice') %}
      <div class="flash-notice">
          {{ flashMessage }}
      </div>
{% endfor %}