Symfony modification de mot de passe message erreur: Expected argument of type "Symfony\Component\HttpFoundati
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
Citation:
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:
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()
]);
}
} |