2017-10-16 8 views
0

Je n'ai jamais eu ce problème auparavant, mais j'essaie d'ajouter un champ à mon formulaire d'inscription de FOSUserBundle. Dans les résultats, je n'ai que la forme deafult du bundle et je n'ai pas eu mon champ "birthday_date". Qu'est-ce que je fais mal ?Je ne peux pas ajouter de champs à mon formulaire d'inscription

Mon fichier RegistrationType

<?php 

namespace AppBundle\Form; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 


class RegistrationType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->add('birthday_date'); 
} 
public function getParent() 
{ 
    return 'fos_user_registration'; 
} 
public function getName() 
{ 
    return 'app_user_registration'; 
} 
} 

Mon fichier config.yml

fos_user: 
    db_driver: orm # other valid values are 'mongodb' and 'couchdb' 
    firewall_name: main 
    user_class: AppBundle\Entity\User 
    registration: 
     form: 
      name: app_user_registration 

Et mon fichier servie.yml

app.form.registration: 
    class: AppBundle\Form\RegistrationType 
    tags: 
     - { name: form.type, alias: app_user_registration } 

Je viens de suivre les instructions du document donc je ne sais pas , où est le problème

+0

Dans votre config, si vous changez 'name' en' type' sous l'enregistrement: form: cela vous mène-t-il quelque part? –

Répondre

0

Votre fonction getParent() doit retourner la classe de la forme mère et non le nom, ces changements est livré avec les versions> 2.8, vérifiez Overriding a Form Type

donc votre classe de type de formulaire doit être:

<?php 

namespace AppBundle\Form; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 


class RegistrationType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->add('birthday_date'); 
} 
public function getParent() 
{ 
    return 'FOS\UserBundle\Form\Type\RegistrationFormType'; 
} 
public function getName() 
{ 
    return 'app_user_registration'; 
} 
} 
+0

C'est ce que je devais faire. Mais la documentation parle aussi de changement dans config.yml. Nous devons changer 'name: app_user_registration' en' type: AppBundle \ Form \ RegistrationType' – Eddy