IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Changer ID Formulaire Symfony2 [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 7
    Par défaut Changer ID Formulaire Symfony2
    Bonjour à tous,



    J'ai surchargé le formulaire Registration de FoUserBundle afin d'y ajouter mes champs.
    J'ai surchargé les templates, tout c'est bien.

    Hors je n'arrive pas à changer l'attribut id à la génération du formulaire.

    Voici les fichiers:


    Test\UserBundle\Form\Type\RegistrationFormType.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <?php
     
    namespace Test\UserBundle\Form\Type;
     
    use Symfony\Component\Form\FormBuilder;
    use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType;
     
    class RegistrationFormType extends BaseType
    {
        public function buildForm(FormBuilder $builder, array $options)
        {
            parent::buildForm($builder, $options);
     
            $builder->add('newsletter', 'checkbox')
        }
     
        public function getName()
        {
            return 'test_user_registration';
        }
    }

    Test\UserBundle\Resources\config\services.yml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    services:
          test_user.registration.form.type:
            class: Test\UserBundle\Form\Type\RegistrationFormType
            arguments: [%fos_user.model.user.class%]
            tags:
                - { name: form.type, alias: test_user_registration }


    app\config\config.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    fos_user:
        db_driver: orm
        firewall_name: main
        user_class: Test\UserBundle\Entity\User
        registration:
            form:
                type: test_user_registration

    J'ai quelques choses comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <tr>
      <td><label for="fos_user_registration_form_username">Nom d utilisateur :</label></td>                                      
      <td> <input type="text" id="fos_user_registration_form_username" name="fos_user_registration_form[username]" /></td>
    </tr>
     
    <tr>
      <td><label for="fos_user_registration_form_newsletter">Newsletter :</label></td>                                      
      <td> <input type="checkbox" id="fos_user_registration_form_newsletter" name="fos_user_registration_form[newsletter]" /></td>
    </tr>


    J'aimerais avoir quelques chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <tr>
      <td><label for="test_user_registration_form_username">Nom d utilisateur :</label></td>                                      
      <td> <input type="text" id="test_user_registration_form_username" name="test_user_registration_form[username]" /></td>
    </tr>
     
    <tr>
      <td><label for="test_user_registration_form_newsletter">Newsletter :</label></td>                                      
      <td> <input type="checkbox" id="test_user_registration_form_newsletter" name="test_user_registration_form[newsletter]" /></td>
    </tr>


    Quelqu'un aurait-il une idée ??

    Je vous remercie d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2010
    Messages : 141
    Par défaut
    C'est la méthode GetName de la classe RegistrationFormType qui gère l'id. Il te faut donc pour cela l'étendre.

    Par contre y'a une erreur dans ton copier-coller à la fin de ton message il me semble.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 7
    Par défaut
    Oui c'est la méthode getName(), pourtant je l'ai bien mis donc je ne vois pas pourquoi ça ne marche pas.

  4. #4
    Membre éprouvé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2010
    Messages : 141
    Par défaut
    Sans le parent::BuildForm cela marche non?

    Je ne connais pas suffisament les interfaces pour cela mais RegistrationFormType est base sur l'interface FormTypeInterface qui possède cette méthode, donc je pense que la méthode parent est appelée avant la tienne.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 7
    Par défaut
    non,

    puisqu'il me dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Method "username" for object "Symfony\Component\Form\FormView" does not exist in TestUserBundle:Registration:register_content.html.twig at line 14
    Ce qui est normal puisque ce champ est généré par defaut dans le bundle, non ?

  6. #6
    Membre éprouvé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2010
    Messages : 141
    Par défaut
    Ben là c'est juste qu'il est demandé dans ton twig mais plus passé maintenant. Mais effectivement il faudrait rajouter ces champs dans le form parent dans ton propre type. Cela permettrait de voir si le souci vient bien de là et que la fonction getName() n'est pas appelé dans la classe mère en utilisant son __construct avec ::parent.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer Theme formulaire
    Par padawan78 dans le forum IHM
    Réponses: 2
    Dernier message: 24/05/2008, 15h52
  2. changer couleur formulaire sous vba
    Par niavlys77 dans le forum IHM
    Réponses: 2
    Dernier message: 12/12/2007, 10h11
  3. [Sous-Formulaire] Changer de formulaire source
    Par dj_djocker dans le forum IHM
    Réponses: 6
    Dernier message: 20/07/2007, 11h45
  4. Réponses: 6
    Dernier message: 06/09/2006, 13h08
  5. changer url - formulaire
    Par phoeniix07 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2006, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo