Dans Twig template je vérifie si un champ a une erreur comme celle-ci:
{% if form.points.get('errors') is not empty %}
Existe-t-il une méthode comme:
{% if form.points.hasErrors() %}
faire plus simple? Ce n'est pas une grande différence, mais si je ne peux pas le faire plus facilement, pourquoi pas.
Cette méthode n'existe pas. Je fais généralement {% if form.points.vars.errors|length %}
.
meilleure façon que j'ai trouvé, est d'utiliser ce genre de code
{% if not form.vars.valid %}
<div class="alert alert-error">
{{ form_errors(form) }}
</div>
{% endif %}
Vous pouvez également vérifier les erreurs lors de la substitution du rendu de champ:
{% block field_row %}
{% spaceless %}
<div class="control-group {% if errors %}error{% endif %}">
{{ form_label(form) }}
<div class="controls">
{{ form_widget(form) }}
{{ form_errors(form) }}
</div>
</div>
{% endspaceless %}
{% endblock field_row %}
Pour une personnalisation plus approfondie des formulaires, je fais:
<div class="form-group {% if form.MYFORMINPUT.vars.valid==false %}has-error{% endif %}">
//some twisted divs
{{form_label(form.MYFORMINPUT)}}
{{form_widget(form.MYFORMINPUT)}}
</div>
Sf2.5
C'est ce que j'utilise:
<div class="form-group {{ form.brand.vars.errors|length > '' ? 'has-error' }}">
Puisqu'un tableau vide se résout en faux, vous pouvez raccourcir votre vérification existante à
{% if form.WIDGET_NAME.get('errors') %}