Symfony erreur : Class "App\Entity\UpdatePassword" is not a valid entity or mapped super class.
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
Citation:
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:
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:
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()
]);
} |