7
votes

Ajout de la classe à des erreurs de formulaire invalides dans Symfony2

Je veux personnaliser le traitement des erreurs dans Symfony2 formulaires. Si une erreur s'est produite, le champ de saisie doit avoir une autre classe pour montrer que la valeur d'entrée n'est pas correcte.

Comment puis-je faire cela? Je sais que je dois personnaliser le gabarit de rendu, mais je ne sais pas vraiment comment faire cela. Dois-je personnaliser tous les modèles d'entrée? Et comment puis-je vérifier si l'entrée contient des erreurs?


0 commentaires

4 Réponses :


3
votes

Vous pouvez utiliser former les thèmes et remplacer le thème par défaut. Ex. Voyez comment MopabootStrapBundle Thème Appliquer exactement vous voulez à l'aide de la philosophie de Twitter Bootstrap.


0 commentaires

6
votes

Voici ma solution avec un Thème de formulaire personnalisé . J'ai copié le bloc standard widget_attributes et ajouté le code entre {# Ajouter une erreur Démarrer #} et {# Ajouter une erreur de fin d'erreur #} . Il vous suffit de remplacer la valeur dans {% set errorclass = 'erreur'%} avec votre classe d'erreur.

Cette solution ajoute la classe d'erreur spécifiée à tous les widgets avec des erreurs. xxx


0 commentaires

12
votes

Si vous ne voulez pas utiliser de formulaires personnalisés, vous pouvez faire quelque chose comme ceci (j'ai Symfony 2.6 et Bootstrap 3): XXX


1 commentaires

Merci pour cela, c'était exactement ce que je cherchais.



1
votes

comme dit l'utilisation de la forme de formulaire. Vous pouvez utiliser la macro parent () code> pour éviter le code de double duplication:

{%- block widget_attributes -%}
    {% if errors|length > 0 %}
        {% set _class = 'has-error' %}
        {% if attr.class is defined %}
           {% set _class = _class ~ ' ' ~ attr.class|trim %}
        {% endif %}
        {% set attr = attr|merge({'class': _class}) %}
    {% endif %}
    {{- parent() -}}
{%- endblock widget_attributes -%}


0 commentaires