Faire le rendu d'un champ de formulaire Symfony manuellement

Publié le 21/01/2020 • Mis à jour le 21/01/2020


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧

Dans ce bout de code nous allons voir comment faire le rendu manuellement de cases à cocher d'un formulaire avec Twig. Ça peut être utile quand vous avez des choses spécifiques à afficher. Dans cet exemple, on groupe les choix d'un manière arbitraire et on affecte des titres de tailles différentes à chaque groupe. Comme Ryan l'explique dans le tutoriel Symfonycasts, ne faites pas cela à moins d'y être contraint. Ce type de rendu doit toujours être une exception dans votre code, il ne faut pas en abuser.


Démo HTML du snippet

Options les plus courantes

Les meilleures ventes

Options plus spécifiques


{% trans_default_domain 'snippet' %}

{{ form_start(form) }}

{% for choice in form.my_field.vars.choices %}
    {% if loop.index == 1 %}
        <h3>{{ 'p72_1'|trans }}</h3>
    {% endif %}

    {% if loop.index == 3 %}
        <h2>{{ 'p72_2'|trans }}</h2>
    {% endif %}

    {% if loop.index == 7 %}
        <h4>{{ 'p72_3'|trans }}</h4>
    {% endif %}

    <label for="{{ form.my_field.vars.name }}_{{ choice.value }}">{{ choice.label|trans }}</label>
    <input type="checkbox" id="{{ form.my_field.vars.name }}_{{ choice.value }}" name="{{ form.my_field.vars.name }}" value="{{ choice.value }}"/>
{% endfor %}

{% do form.my_field.setRendered() %}

{{ form_end(form) }}