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 :
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;
    }
 
 
 
}
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
/**
     * 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()
        ]);
    }