Bonjour à tous !
Je suis en train de mettre en place un système d’inscription et je fait face à un problème assez bizarre.
Tout ce passe bien jusqu’au moment où le formulaire est soumis. Je me retrouve avec des valeurs à NULL mais là où c’est encore + bizarre, c’est qu’il y a 2 champs (username et password) qui ont bien les valeurs envoyées mais pas le reste, ce qui me laisse assez perplexe.
Voici mon code :
UserController
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?php /** * @Route("inscription", name="registration") */ public function register(Request $request) { $user = new User(); $form = $this->createForm(RegisterType::class, $user); $form->handleRequest($request); if($form->isSubmitted() && $form->isValid()) { $session = new Session(); $session->set('user', $user); $session->set('req', $request); return $this->redirectToRoute('index'); } return $this->render('utils/registration.html.twig', array( 'registerForm' => $form->createView(), )); } ?> |
RegisterType
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | <?php class RegisterType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('username', TextType::class, array( 'attr' => array('placeholder' => 'Pseudo'), 'label' => false )) ->add('password', PasswordType::class, array( 'attr' => array('placeholder' => 'Mot de passe'), 'label' => false )) ->add('confirmPassword', PasswordType::class, array( 'attr' => array('placeholder' => 'Confimer le mot de passe'), 'label' => false, 'mapped' => false )) ->add('email', EmailType::class, array( 'attr' => array('placeholder' => 'Email'), 'label' => false )) ->add('firstName', TextType::class, array( 'attr' => array('placeholder' => 'Prénom'), 'label' => false )) ->add('lastName', TextType::class, array( 'attr' => array('placeholder' => 'Nom'), 'label' => false )) ->add('phoneN1', TelType::class, array( 'attr' => array('placeholder' => 'Téléphone fixe'), 'label' => false )) ->add('phoneN2', TelType::class, array( 'attr' => array('placeholder' => 'Téléphone mobile'), 'label' => false )) ->add('address', TextType::class, array( 'attr' => array('placeholder' => 'Rue'), 'label' => false )) ->add('birthdate', BirthdayType::class, array( 'widget' => 'single_text' )) ->add('city', EntityType::class, array( 'class' => City::class, 'query_builder' => function(EntityRepository $er){ return $er->createQueryBuilder('listCities') ->orderBy('listCities.npa', 'ASC'); } )) ->add('cgu', CheckboxType::class, array( 'label' => 'J\'ai lu et j\'accepte les conditions générales d\'utilisation', 'mapped' => false )) ->add('register', SubmitType::class, array( 'attr' => array('class' => 'btn btn-primary'), 'label' => 'S\'inscrire' )) ; } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => User::class, ]); } } ?> |
Je vous mets également le fichier security.yaml, au cas où :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | security: encoders: App\Entity\User: algorithm: bcrypt providers: #in_memory: { memory: ~ } user_provider: entity: class: App\Entity\User property: username firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false main: anonymous: true pattern: ^/ http_basic: true provider: user_provider form_login: login_path: login check_path: login access_control: - { path: ^/admin, roles: ROLE_ADMIN } - { path: ^/ajouter-une-annonce, roles: ROLE_USER } - { path: ^/gerer-mes-annonces, roles: ROLE_USER } - { path: ^/mon-compte, roles: ROLE_USER } |
J’ai beau regarder encore et encore la doc Symfony, je ne vois pas pour quelle(s) raison(s) les données ne sont pas transmises.
Merci d’avance !
+0
-0