Bonjour,

J'utilise le bundle FOSUserBundle sous symfony2, donc j'ai fusionné les deux formulaires de connexion et d'inscription (login et registre) dans une même page. Tout fonctionne bien, il y a juste lorsqu'il y a une erreur dans le formulaire d'inscription, il n'affiche pas les erreurs, donc il m'affiche rien (si comme si c'est la première fois qu'on rentre sur la page.

Voici mon controller
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
 
    public function registerAction(Request $request, $id = '0')
    {
        /** @var $formFactory \FOS\UserBundle\Form\Factory\FactoryInterface */
        $formFactory = $this->get('fos_user.registration.form.factory');
        /** @var $userManager \FOS\UserBundle\Model\UserManagerInterface */
        $userManager = $this->get('fos_user.user_manager');
        /** @var $dispatcher \Symfony\Component\EventDispatcher\EventDispatcherInterface */
        $dispatcher = $this->get('event_dispatcher');
 
        $user = $userManager->createUser();
        $user->setEnabled(true);
        $user->setIp($this->getRequest()->getClientIp());
 
        $event = new GetResponseUserEvent($user, $request);
        $dispatcher->dispatch(FOSUserEvents::REGISTRATION_INITIALIZE, $event);
 
        if (null !== $event->getResponse()) {
            return $event->getResponse();
        }
 
        $session = $request->getSession();
 
        if($id != '0'){
            $session->set('booking', $id);
        }
 
        $redirect = false;
        if (null !== $request->request->get('red') ) {
            $redirect = true;
        }
 
        $form = $formFactory->createForm();
        $form->setData($user);
 
        $form->handleRequest($request);
 
        if ($form->isValid()) {
 
            $user = $form->getData();
            $this->authenticateUser($user);
            $key = '_security.main.target_path';
            if ($this->container->get('session')->has($key)) {
                $url = $this->container->get('session')->get($key);
                $this->container->get('session')->remove($key);
            } elseif ( $session->get('booking') == '0') {
                $url = $this->container->get('router')->generate('base_bledvoyage_homepage');
            } else {
                $url = $this->container->get('router')->generate('bledvoyage_booking', array('id' => $session->get('booking')));
                $session->remove('booking');
            }
            $response = new RedirectResponse($url);
 
            $event = new FormEvent($form, $request);
            $dispatcher->dispatch(FOSUserEvents::REGISTRATION_SUCCESS, $event);
 
            $userManager->updateUser($user);
 
            $dispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response));
 
            return $response;
 
        }
        if ($id != '0'){
            $response = $this->render('FOSUserBundle:Registration:register_booking.html.twig', array(
                'form'      => $form->createView(),
                'id'        => $id,
            ));
        }elseif ($redirect == true){
            $response = $this->render('BaseBledvoyageBundle:Default:booking.html.twig', array(
                'form'      => $form->createView(),
                'booking'        => $request->request->get('red'),
            ));
        }elseif ($id == '0'){
            $response = $this->render('FOSUserBundle:Registration:register.html.twig', array(
                'form'      => $form->createView(),
            ));
        }
 
        return $response;
    }
Je vous remercie.