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
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 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(), )); }
Et je ne sais pas si cela sera utile mais voici l'entité User et le fichier 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
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' )) ; }
User
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
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(); }
Merci d'avance !
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 }
Partager