web-dev-qa-db-fra.com

Vérification simple si le champ du formulaire contient des erreurs dans le modèle Twig

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.

57
Dawid Ohia

Cette méthode n'existe pas. Je fais généralement {% if form.points.vars.errors|length %}.

84
Kris Wallsmith

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 %}
101
birko

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 %}
18
jkucharovic

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

12
d3uter

C'est ce que j'utilise:

 <div class="form-group {{ form.brand.vars.errors|length > '' ? 'has-error' }}">
0
mrDjouk

Puisqu'un tableau vide se résout en faux, vous pouvez raccourcir votre vérification existante à

{% if form.WIDGET_NAME.get('errors') %}
0
Riccardo Galli