32 votes

Rendu personnalisé d'un champ "répété" de Symfony 2 dans Twig

Je viens de commencer à utiliser Twig et j'essaie de créer un formulaire d'inscription. Pour ajouter un champ de mot de passe/de saisie de mot de passe, j'utilise le type de fichier "repeated" :

->add('password', 'repeated', array(
    'type' => 'password',
    'invalid_message' => 'Passwords have to be equal.',
    'first_name'      => 'Password',
    'second_name'     => 'Re-enter password',
));

qui fonctionne comme prévu. Le problème que j'ai cependant est que je veux ajouter quelques classes personnalisées etc. à mon formulaire. Mon modèle ressemble donc à ceci :

<form action="{{ path('register') }}" method="post" {{ form_enctype(form) }}>
    {{ form_errors(form) }}
    {{ form_errors(form.username) }}
    <div class="form-field">
        {{ form_label(form.username, null, { 'attr': {'class': 'form-label'} }) }}
        {{ form_widget(form.username, { 'attr': {'class': 'form-input'} }) }}
    </div>
    {{ form_errors(form.email) }}
    <div class="form-field">
        {{ form_label(form.email, null, { 'attr': {'class': 'form-label'} }) }}
        {{ form_widget(form.email, { 'attr': {'class': 'form-input'} }) }}
    </div>
    {{ form_errors(form.password) }}
    <div class="form-field">
        {{ form_label(form.password, null, { 'attr': {'class': 'form-label'} }) }}
        {{ form_widget(form.password, { 'attr': {'class': 'form-input'} }) }}
    </div>

    {{ form_rest(form) }}

    <input type="submit" class="contact-submit" />
</form>

cela fonctionne bien pour tout sauf pour la partie mot de passe. Je veux rendre les deux champs séparément, maintenant ils sont tous les deux rendus dans le même div.

Comment puis-je réparer cela ? Existe-t-il un moyen de sélectionner des champs distincts dans Twig ? Ou est-ce que je fais simplement quelque chose de mal parce que je rencontre ce problème en premier lieu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X