Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Cómo crear FlashBag animados

4 de septiembre de 2015

Hola a todos,

No se si ya lo hayan implementado pero descubrí una forma de mostrar los "mensajes flash" animados, es la siguiente:

Librerías:

Una vez instaladas y adicionadas a la plantilla pueden configurar los mensajes de la siguiente manera:

En la plantilla:

{% block javascripts %}
    {% for type, messages in app.session.flashBag.all %}
        {% for message in messages %}
            <script>
                $.notify({
                    message: '{{ message|trans({}, 'FOSUserBundle') }}'
                },{
                    type: '{{ type }}'
                });
            </script>
        {% endfor %}
    {% endfor %}
 
{% endblock %}

En el controlador:

$this->get('session')->getFlashBag()->add('success', 'mensaje de creación');

Para más opciones de los mensajes pueden consultar la página de Bootstrap Notify

Así de fácil!!!!


Respuestas

#1

Gracias por compartir esta solución. Me gustaría comentar un pequeño truco para mejorarlo. Cuando accedes a los mensajes flash con app.session-flashbag.all, Symfony siempre inicia una sesión, aunque no haya mensajes flash. Yo pienso que esto es un "bug", pero algunos defienden que es una característica que tiene sentido.

En cualquier caso, para mejorar el rendimiento de la aplicación, te aconsejo usar el siguiente código, que comprueba primero si existe una sesión ya iniciada:

{% block javascripts %}
    {% if app.session.started %}
        {% for type, messages in app.session.flashBag.all %}
            {% for message in messages %}
                <script>
                    $.notify({
                        message: '{{ message|trans({}, 'FOSUserBundle') }}'
                    },{
                        type: '{{ type }}'
                    });
                </script>
            {% endfor %}
        {% endfor %}
    {% endif %}
{% endblock %}

@javiereguiluz

4 septiembre 2015, 8:29
#2

Gracias Javier, ya realice el cambio.

@miguelplazasr

4 septiembre 2015, 17:18