Bonjour,

J'utilise la version 4.3.9 de Symfony. Lors de l'envoi d'un formulaire, je veux avertir l'utilisateur du statut de sa demande. Pour ce faire, je tente d'utiliser les messages flash, mais ils ne sont pas affichés.

Voici le code de la fonction de 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
    /**
     * User request to change its password
     * 
     * @Route("/security/resetting/request", name="security.resetting.request")
     *
     * @param Request $request
     * @param \Swift_Mailer $mailer
     * @param TokenGeneratorInterface $tokenGenerator
     * @param EntityManagerInterface $manager
     * @param UserRepository $userRepository
     * 
     * @return Response
     */
    public function resetingRequest(Request $request, \Swift_Mailer $mailer, TokenGeneratorInterface $tokenGenerator, EntityManagerInterface $manager, 
                                    UserRepository $userRepository): Response
    {
 
        $administrator = $userRepository->findOneBy(array('name' => 'administrator'));
 
        $form = $this->createFormBuilder()
                     ->add('email', EmailType::class, ['constraints' => [
                                                                            new Email(),
                                                                            new NotBlank()
                                                                        ]
                                                      ]
                          )
                     ->getForm();
 
        $form->handleRequest($request);
 
        if ($form->isSubmitted() && $form->isValid()) 
        {
 
            $user = $manager->getRepository(User::class)->loadUserByEmail($form->getData()['email']);
 
            if (! $user) 
            {
                \dump($user);
                $this->addFlash('error', "The email address isn't linked to a Roadtrip user.");
 
                //return $this->redirectToRoute("security.resetting.request");
 
            }
            else
            { 
 
                $user->setToken($tokenGenerator->generateToken());
                $user->setPasswordRequestedAt(new \Datetime());
                $manager->flush(); 
 
                $mail = new Mail;
 
                $mail->setReceiver($user)
                    ->setSubject($this->getParameter('password_Resetting_email_subject'))
                    ->setSender($administrator)
                    ->setMessage('Password renew')
                    ->setBody($this->renderView(
                                                    'security/passwordResettingEmail.html.twig', 
                                                    ['mail' => $mail]
                                                )
                                )
                ;
 
                if ($mail->sendEmail($mailer))
                { 
 
                    $manager->persist($mail);
                    $manager->flush();
 
                    $this->addFlash('success', "An email has been sent to the registered email address in your account so you can change your password.");
 
                    //return $this->redirectToRoute("security.login");
 
                }
                else
                {
 
                    $this->addFlash('error', "Impossible to send a confirmation email to change your password.");
 
                    //return $this->redirectToRoute("security.resetting.request");
 
                }
 
            }
 
            return $this->redirectToRoute("security.resetting.request");
 
        }
 
        return $this->render('security/passwordResettingRequest.html.twig', [
                                                                                'form' => $form->createView(),
                                                                                'bodyId' =>  'secutityResettingRequest'
                                                                            ]
                            )
        ;
 
    }
Voici maintenant le code de mon template :

Code twig : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{% extends 'base.html.twig' %}
 
{% block title %}
    Roadtripr - Password ressetting request
{% endblock %}
 
{% block body %}
    {% for label, messages in app.flashes %}
        {% for message in messages %}
            <div class="flash-{{ label }}">
                {{ message }}
            </div>
        {% endfor %}
    {% endfor %}
...

Quelqu'un aurait une idée sur la provenance du problème?

Merci d'avance pour votre aide.