Bonjour,

j'essaie tant bien que mal à envoyer des données en post pour enregistrer un utilisateur via le formulaire de FOSUserBundle.

Mais dans mon controlleur le form ne se soumet pas et je n'arrive pas à comprendre pourquoi...

mon controlleur :
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
 
/**
     *
     * Post Form to register a new user
     *
     * @param Request $request
     *
     * @Rest\View()
     * @Rest\Post()
     *
     * @return Response
     */
    public function postRegistrationFormAction(Request $request)
    {
        /** @var $userManager UserManagerInterface */
        $userManager = $this->get('fos_user.user_manager');
        /** @var $dispatcher EventDispatcherInterface */
        $dispatcher = $this->get('event_dispatcher');
 
        /** @var User $user */
        $user = $userManager->createUser();
        $user->setEnabled(true);
 
        $event = new GetResponseUserEvent($user, $request);
        $dispatcher->dispatch(FOSUserEvents::REGISTRATION_INITIALIZE, $event);
 
        if(null !== $event->getResponse())
        {
            return $event->getResponse();
        }
 
        $form = $this->get('form.factory')->create(RegistrationType::class, $user, array('csrf_token_id'=>false));
        $form->setData($user);
 
        $form->handleRequest($request);
 
        if($form->isSubmitted())
        {
            if($form->isValid())
            {
                $event = new FormEvent($form, $request);
                $dispatcher->dispatch(FOSUserEvents::REGISTRATION_SUCCESS, $event);
 
                $user = $this->transferUserDataIfExisting($user);
 
                $user->setDateInscription(new \DateTime());
 
                $userManager->updateUser($user);
 
                if(null === $response = $event->getResponse())
                {
                    $url = $this->generateUrl('fos_user_registration_confirmed');
                    $response = new RedirectResponse($url);
                }
 
                $dispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response));
 
                return $response;
            }
 
            $event = new FormEvent($form, $request);
            $dispatcher->dispatch(FOSUserEvents::REGISTRATION_FAILURE, $event);
 
            if(null !== $response = $event->getResponse())
            {
                return $response;
            }
        }
 
        return $form;
    }
ça fonctionne quand il me le génère sur une vue twig et que je lui renvoie.

mais pas moyen de renvoyer le formulaire en POST en dehors de ça...

par exemple sur une page HTML je le renvoie comme ceci :

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
 
<form name="app_user_registration" action="url-vers-le-controlleur-ci-dessus" method="post">
<div id="app_user_registration">
    <div>
        <label for="app_user_registration_email" class="required">form.email</label>
        <input type="email" id="app_user_registration_email" name="app_user_registration[email]" required="required" />
    </div><div>
        <label for="app_user_registration_username" class="required">form.username</label>
        <input type="text" id="app_user_registration_username" name="app_user_registration[username]" required="required" maxlength="180" pattern=".{2,}" />
    </div><div>
        <label for="app_user_registration_plainPassword_first" class="required">form.password</label>
        <input type="password" id="app_user_registration_plainPassword_first" name="app_user_registration[plainPassword][first]" required="required" />
    </div><div>
        <label for="app_user_registration_plainPassword_second" class="required">form.password_confirmation</label>
        <input type="password" id="app_user_registration_plainPassword_second" name="app_user_registration[plainPassword][second]" required="required" />
    </div><div>
        <label for="app_user_registration_lastName" class="required">Last name</label>
        <input type="text" id="app_user_registration_lastName" name="app_user_registration[lastName]" required="required" />
    </div><div>
        <label for="app_user_registration_firstName" class="required">First name</label>
        <input type="text" id="app_user_registration_firstName" name="app_user_registration[firstName]" required="required" />
    </div>
</div>
<input type='submit' />
</form>