IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Symfony erreur : Class "App\Entity\UpdatePassword" is not a valid entity or mapped super class.


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 25
    Par défaut 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
    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()
            ]);
        }

  2. #2
    Membre Expert

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 583
    Par défaut
    Salut,

    Tu as essayé d'ajouter les annotations spécifiques aux entités @Entity ... ? PasswordUpdateType map bien ta classe? L'erreur est après ton new dans la fonction createForm essai un die pour vérifier?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 25
    Par défaut
    Salut Kevin,

    Effectivement l'erreur était bien après le new dans la fonction createForm.
    J'ai finalement tout repris, rédaction de la classe et de la function et tout fonctionne parfaitement.. Mystère !

    Un grand merci à toi

    bye

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Doctrine] Class XX is not a valid entity or mapped super class.
    Par optiloose dans le forum ORM
    Réponses: 0
    Dernier message: 22/08/2011, 14h19
  2. [MySQL] erreur de syntaxe par rapport au "argument is not a valid MySQL result resource" ?
    Par toto007 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/06/2008, 23h08
  3. erreur "Class A uses a non-entity class B
    Par bassim dans le forum JPA
    Réponses: 11
    Dernier message: 09/12/2007, 00h02
  4. postgres-php erreur unterminated quoted
    Par peppena dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 02/05/2006, 16h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo