Bonjour à tous,
Voila le soucis,
J'ai crée une nouvelle classe dans le dossier entity de Symfony5 nommée UpdatePassword et je rencontre une erreur de type.Class App\Entity\UpdatePassword" is not a valid entity or mapped super class
J'ai contrôler à plusieurs reprises la syntaxe globale mais je ne vois aucune erreur.
Je dois dire que j'ai les yeux qui se croises au bout de 3 jours de recherches.
Toutes les "use" sont présents et valides. J'étais avant sur Symfony 4.3 et ce projet est sur la version 5.
Merci par avance pour vos retour !
Bye
Voici le code de la classe :
Et voici le code de ma function dans le 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 <?php namespace App\Entity; use Symfony\Component\Validator\Constraints as Assert; class UpdatePassword { private $oldPassword; /** *@Assert\Length(min=8,minMessage = "Lemot de passe doit faire 8 caractères") */ private $newPassword; /* *@Assert\EqualTo(propertyPath="newPassword", message="Le mot de pass est différent, essayez à nouveau") */ private $confirmPassword; public function getOldPassword(): ?string { return $this->oldPassword; } public function setOldPassword(string $oldPassword): self { $this->oldPassword = $oldPassword; return $this; } public function getNewPassword(): ?string { return $this->newPassword; } public function setNewPassword(string $newPassword): self { $this->newPassword = $newPassword; return $this; } public function getConfirmPassword(): ?string { return $this->confirmPassword; } public function setConfirmPassword(string $confirmPassword): self { $this->confirmPassword = $confirmPassword; return $this; } }
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 /** * Permet de modifier le mot de passe * * @Route("account/password-update", name="account_password") * * @return Response */ public function updatePassword(Request $request, UserPasswordEncoderInterface $encoder){ //Nouvel objet $passwordUpdate = new UpdatePassword(); //J'accède à l'utilisateur connecté $user = $this->getUser(); //Je crée le formulaire $form = $this->createForm(PasswordUpdateType::class, $passwordUpdate); //Je lance la requete $form->handleRequest($request); //J'appelle le doctrine manager $manager = $this->getDoctrine()->getManager(); //Si le formaulaire est soumis et s'il est valide if($form->isSubmitted() && $form->isValid()){ //Je vérifie que le nouveau et l'ancien password sont identiques //Si oldPassword est différent du hash de l'utilisateur connecté if(!password_verify($passwordUpdate->getOldPassword(), $user->getHash())){ //Gérer l'erreur }else{ $newPassword = $passwordUpdate->getNewPassword(); $hash = $encoder->encodePassword($user, $newPassword); $user->setHash($hash); //Je persist $manager->persist($passwordUpdate); $manager->flush(); //Message flash $this->addFlash( 'success', "Votre mot de passe à bien été modifié" ); //Redirection return $this->redirectToRoute('homepage'); } } return $this->render('account/password.html.twig',[ 'form'=> $form->createView() ]); }
Partager