Bonjour à tous !

Je suis en train de mettre en place un formulaire d'inscription et je ne sais pas pourquoi mais les données renvoyées au moment de la soumission sont à NULL. Mais là où cela me laisse perplexe, c'est que 2 champs ont quand même les bonnes valeurs : username & password.

Voici mon code :

UserController

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
23
24
25
26
27
class UserController extends AbstractController
{
    /**
     * @Route("inscription", name="registration")
     */
    public function register(Request $request)
    {
        $user = new User();
        $form = $this->createForm(RegisterType::class, $user);
 
        //Gestion des données renvoyées
        $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 (formulaire)

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
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
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', RepeatedType::class, array(
                'type' => PasswordType::class,
                'invalid_message' => 'Les deux mots de passe doivent être identiques',
                'required' => true,
                'first_options' => array('label' => false, 'attr' => array('placeholder' => 'Mot de passe')),
                'second_options' => array('label' => false, 'attr' => array('placeholder' => 'Confimer le mot de passe'))
            ))
            ->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'
            ))
        ;
    }
Et je ne sais pas si cela sera utile mais voici l'entité User et le fichier security.yaml

User

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
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/**
 * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
 */
class User implements UserInterface, \Serializable
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;
 
    /**
     * @ORM\Column(type="string", length=50)
     */
    private $username;
 
    /**
     * @ORM\Column(type="string", length=255)
     */
    private $password;
 
    /**
     * @ORM\Column(type="string", length=50)
     */
    private $email;
 
    /**
     * @ORM\Column(type="string", length=50)
     */
    private $firstName;
 
    /**
     * @ORM\Column(type="string", length=50)
     */
    private $lastName;
 
    /**
     * @ORM\Column(type="integer")
     */
    private $phoneN1;
 
    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $phoneN2;
 
    /**
     * @ORM\Column(type="string", length=50)
     */
    private $address;
 
    /**
     * @ORM\Column(type="date")
     */
    private $birthdate;
 
    /**
     * @ORM\Column(type="datetime", nullable=true)
     */
    private $lastLogin;
 
    /**
     * @ORM\Column(type="string", length=10, nullable=true)
     */
    private $picture;
 
    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     */
    private $hash;
 
    /**
     * @ORM\Column(type="boolean")
     */
    private $isActive;
 
    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\City", inversedBy="users")
     * @ORM\JoinColumn(nullable=false)
     */
    private $city;
 
    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Postulation", mappedBy="user")
     */
    private $postulations;
 
    /**
     * @ORM\OneToMany(targetEntity="App\Entity\JobOffer", mappedBy="user")
     */
    private $jobOffers;
 
    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Document", mappedBy="user")
     */
    private $documents;
 
    public function __construct()
    {
        $this->postulations = new ArrayCollection();
        $this->jobOffers = new ArrayCollection();
        $this->documents = new ArrayCollection();
    }
security.yaml

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
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 }
Merci d'avance !