I want to add support for flash messages on our pages. I implemented this by following the documentation found here.
I added the following snipplet to my base layout. (i also tried to add it to a specific action template).
{% if app.session.hasFlash('notice') %}
<div id="flashmessage" class="flash-notice">
{{ app.session.flash('notice') }}
</div>
{% endif %}
After adding the following error is thrown
Twig_Error_Runtime: Item "hasFlash" for "" does not exist in "MyBundle::layout.html.twig" at line 66
Is there anything else i need to do ?
do you use symfony 2.0 or 2.1 (currently master branch)?
for symfony 2.1 the documentation is located here: http://symfony.com/doc/2.1/book/controller.html#flash-messages
flash messages are shown like this:
{% for flashMessage in app.session.flashbag.get('notice') %}
<div class="flash-notice">
{{ flashMessage }}
</div>
{% endfor %}
Mmm check in your config file that you have auto-started the session:
session:
default_locale: %locale%
auto_start: true
Because the error seems to be that Twig doesn't find the session class, not something about the hasFlash function. In fact I have almost exactly the same code in my layout.
This is pretty old at time of writing so imagine you've worked it out by now, but for reference sake, it's has
rather than hasFlash
. So..
{% if app.session.flashbag.has('notice') %}
<div id="flashmessage" class="flash-notice">
{{ app.session.flashbag.get('notice') }}
</div>
{% endif %}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With