Bonjour,

je débute avec Symfony et j'essaie de créer un formulaire où l'on pourra modifier le mot de passe. Je suis à la dernière étape et j'ai ce message d'erreur

Expected argument of type "Symfony\Component\HttpFoundation\Request", "null" given

in C:\wamp64\www\laboutique\vendor\symfony\form\Extension\HttpFoundation\HttpFoundationRequestHandler.php:44

Merci d'avance, Voici le code php:


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
<?php
 
namespace App\Controller;
 
use App\Form\ChangePasswordType;
use Doctrine\ORM\EntityManagerInterface;
 
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
 
class AccountPasswordController extends AbstractController
{
 
    public function __construct(EntityManagerInterface $entityManager)
    {
        $this->entityManager=$entityManager;
    }
 
    /**
     * @Route("/compte/modifier-mot-de-passe", name="account_password")
     * @param Request $request
     * @param UserPasswordEncoderInterface $encoder
     * @return Response
     */
    public function index(Request $request, UserPasswordEncoderInterface $encoder)
    {
        $notification=null;
 
        $user=$this->getUser();
        $form=$this->createForm(ChangePasswordType::class, $user);
 
        $form->handleRequest();
 
        if($form->isSubmitted() && $form->isValid()){
 
            $old_pwd=$form->get('new_password')->getData();
 
            if($encoder->isPasswordValid($user,$old_pwd)){
                $new_pwd=$form->get('new_password')->getData();
                $password=$encoder->encodePassword($user, $new_pwd);
 
                $user->setPassword($password);
                $this->entityManager->flush();
                $notification="Votre mot de passe a bien été mis à jour";
 
            } else {
                $notification="Votre mot de passe actuel n'est le bon";
            }
        }
        return $this->render('account/password.html.twig',[
            'form'=>$form->createView()
        ]);
    }
}