Flash messages

Het komt ongetwijfeld voor in een webapplicatie dat er berichten op het scherm moeten worden getoond. Je kunt dit vrij gemakkelijk door Symfony laten regelen.

Maak een Twig bestand

Maak een Twig bestand templates/flash_messages.twig.html, en plaats hierin de volgende code:

{# flash messages on your screen#}
{% block flash_messages %}
    {% for type, messages in app.session.flashbag.all() %}
        {% for message in messages %}
                <b>{{ type }}</b>:
                {{ message | raw }}
        {% endfor %}
    {% endfor %}
{% endblock %}

Ga nu naar templates/base.html.twig en voeg de volgende code toe voor de {% block body %} tag.

{% include 'flash_messages.html.twig' %}

Stuur berichten via je controller

Vanaf nu kun je berichten op het scherm plaatsen via je controller met deze regel:

$this->addFlash('Informatie', 'Dit is een flash-message vanuit de controller.');

Voorbeeld

class StartController extends AbstractController
{
    /**
     * @Route("/", name="start")
     */
    public function index()
    {
        $this->addFlash('Informatie', 'Dit is een flash-message vanuit de controller.');
        $this->addFlash('', 'En hier nog eentje.');
        return $this->render('start/index.html.twig', [
            'controller_name' => 'StartController',
        ]);
    }
}