Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Semantical Error] The annotation @Doctrine\ORM\ma

Framwork Symfony, [Semantical Error] The annotation "@Doctrine\ORM\Map

    19 octobre 2020 à 16:51:47

    Bonjour 


    Je suis jeune dev autodidacte. Depuis quelques mois je travaille sur une application web que j’ai écrit en symfony mais je n’arrive pas à la débloquer voici le message : 

    [Semantical Error] The annotation "@Doctrine\ORM\Mapping\colum" in class App\Entity\Post was never imported. Did you maybe forget to add a "use" statement for this annotation?

    malgré ma volonté je n’ai rien trouvé dans le doc de symfony qui me permettait  de débloquer mon site. Si quelqu’un qui as la solution pouvez-vous m’aider  et m’expliquer ce qu’est le "use" statement SVP ? Merci beaucoup pour votre aide ! Nelson 


    • Partager sur Facebook
    • Partager sur Twitter
      19 octobre 2020 à 16:53:35

      Salut

      Ce devrait être Column, non ?

      • Partager sur Facebook
      • Partager sur Twitter
        19 octobre 2020 à 17:10:01

        malheureusement ce n’est pas ça non plus, car quand je change colum par column il me donne un autre message : [Semantical Error] Annotation @Doctrine\ORM\Mapping\column isnot allowed to be declared on class App\Entity\Post. You may only use this annotation on these code elements: PROPERTY, ANNOTATION.


        mais merci quand même. !Nelson

        • Partager sur Facebook
        • Partager sur Twitter
          19 octobre 2020 à 19:29:41

          Alors oui c'est bien ce que je t'avais dit, vu que le message a changé. Il peut désormais trouver l'annotation parce qu'il te dit que tu ne l'utilises pas correctement.

          Manifestement, tu l'utilises sur le nom de l'entité alors qu'il faut l'utiliser sur un attribut de l'entité.

          • Partager sur Facebook
          • Partager sur Twitter
            1 novembre 2020 à 15:43:24

            Bonjour Ymox

            Malgré toutes mes recherches dans mon projet je n’ai pas trouvé l’emplacement du problème.

            Est-ce que tu pourrais m’aider ?


            merci


            • Partager sur Facebook
            • Partager sur Twitter
              1 novembre 2020 à 21:22:40

              Tu peux nous montrer le code de cette entité ?

              • Partager sur Facebook
              • Partager sur Twitter
                3 novembre 2020 à 14:19:33 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


                  3 novembre 2020 à 14:22:07

                  Edite ton message ci-dessus et copie-colle le code en utilisant le bouton </>. Sinon on va t'envoyer des partitions quand tu veux télécharger des musiques ou des fichiers CFONB pour tes relevés bancaires papier.

                  -
                  Edité par Ymox 3 novembre 2020 à 14:22:20

                  • Partager sur Facebook
                  • Partager sur Twitter
                    3 novembre 2020 à 22:51:22

                    a quel niveau je dois l'éditer le code ? Je ne comprend pas désolé :(


                    • Partager sur Facebook
                    • Partager sur Twitter
                      3 novembre 2020 à 23:14:39

                      NelsonCaterino a écrit:

                      a quel niveau je dois l'éditer le code ? Je ne comprend pas désolé :(

                      Bonsoir, en utilisant le bouton approprié d'insertion de code du forum soit le bouton code </>

                      Merci de colorer votre code à l'aide du bouton Code

                      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: php;">Votre code ici</pre>.

                      Merci de modifier votre message d'origine en fonction.

                      Liens conseillés


                      En image cela donne :

                      en choisissant le bon langage dans la liste proposée.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        3 novembre 2020 à 23:28:34

                        <?php
                        
                        namespace App\Entity;
                        
                        use App\service\ImageService;
                        use App\Repository\PostRepository;
                        use Vich\UploaderBundle\Mapping\Annotation as Vich;
                        use Doctrine\ORM\Mapping as ORM;
                        use Symfony\Component\HttpFoundation\File\File;
                        use Doctrine\Common\Collections\ArrayCollection;
                        use Doctrine\Common\Collections\Collection;
                        use Doctrine\ORM\Mapping\Entity;
                        use Doctrine\ORM\Mapping\Table;
                        use Doctrine\ORM\Mapping\Id;
                        use Doctrine\ORM\Mapping\GeneratedValue;
                        use Doctrine\Bundle\DoctrineBundle;
                        use Doctrine\Bundle\DoctrineBundle\Controller;
                        use vich\UploaderBundle\Mapping\Annotation;
                        use Doctrine\ORM\Mapping\column;
                        
                        
                        
                        /**
                         * @ORM\Entity(repositoryClass=PostRepository::class)
                         * image
                         * imageFile
                         * updatedAt
                         * @Doctrine\ORM\Mapping\column
                         * @Doctrine\ORM\Mapping\Entity
                         * @Orm\column(name='status',type='string,length=255')
                         * @Vich\Uploadable
                         **/
                        
                        class Post {
                        
                            /**
                             * image
                             * imageFile
                             * updatedAt
                             * @Vich\Uploadable
                             * @ORM\Entity(repositoryClass=PostRepository::class)
                             * @ORM\Id()
                             * @ORM\GeneratedValue()
                             * ORM\Mapping\Column     
                             * @ORM\Column(type="integer")
                             * @ORM\Column(name='status',type='string,length=255'
                             **/
                           
                             private $id;
                        
                            /**
                             * @ORM\Column(type="string", length=255)
                             */
                        
                            private $name;
                        
                            /**
                             * @ORM\Column(type="string", length=255)
                             */
                            private $column;
                             /**
                            * @ORM\Column(type="string", length=255)
                            */
                            private $content;
                        
                            /**
                            * @ORM\Column(type="string", length=255)
                            * @var \Datetime
                            */
                        
                            private $image;
                        
                            /**
                             * @Vich\UploadableField(mapping="product_images", fileNameProperty="image")
                             * @var File
                             */
                            
                            private $imageFile;
                        
                            /**
                             * @ORM\Column(type="file")
                             * @var File
                             */
                        
                            private $updatedAt;
                        
                            /** 
                             * @ORM\Column(type="text")
                             * @var File
                             */
                        
                            private $slug;
                        
                            /** 
                             * @ORM\Column(type="string", length=255)
                             */    
                            
                            public function setImageFile(File $image = null)
                            {
                                $this->imageFile = $image;
                        
                                // VERY IMPORTANT:
                                // It is required that at least one field changes if you are using Doctrine,
                                // otherwise the event listeners won't be called and the file is lost
                                if ($image) {
                                    // if 'updatedAt' is not defined in your entity, use another property
                                    $this->updatedAt = new \DateTime('now');
                                }
                            }
                            public function getImageFile()
                            {
                                return $this->imageFile;
                            }
                        
                            public function setImage($image)
                            {
                                $this->image = $image;
                            }
                        
                            public function getImage()
                            {
                                return $this->image;
                            }
                        
                            public function getId(): ?int
                            {
                                return $this->id;
                            }
                        
                            public function getName(): ?string
                            {
                                return $this->name;
                            }
                        
                            public function setName(string $name): self
                            {
                                $this->name = $name;
                        
                                return $this;
                            }
                        
                            public function getSlug(): ?string
                            {
                                return $this->slug;
                            }
                        
                            public function setSlug(string $slug): self
                            {
                                $this->slug = $slug;
                        
                                return $this;
                            }
                        }
                        
                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 novembre 2020 à 11:57:30

                          OK, je confirme que tu as trop de choses entre /** et */ avant class Post …, tu n'y as besoin que des lignes 24 et 31. Ensuite, tu as aussi trop de choses avant private $id, là ce sont les lignes 42, 43 et 45 qu'il faut conserver.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            4 novembre 2020 à 15:13:23

                            j'ai supprimé les lignes que tu m'as indiquées mais j'ai de nouveau une erreur 

                            [Semantical Error] The annotation "@Vich\UploaderBundle\Mapping\Annotation\Uploadable" in class App\Entity\Post was never imported. Did you maybe forget to add a "use" statement for this annotation?

                            <?php
                            
                            namespace App\Entity;
                            
                            use App\service\ImageService;
                            use App\Repository\PostRepository;
                            use Vich\UploaderBundle\Mapping\Annotation as Vich;
                            use Doctrine\ORM\Mapping as ORM;
                            use Symfony\Component\HttpFoundation\File\File;
                            use Doctrine\Common\Collections\ArrayCollection;
                            use Doctrine\Common\Collections\Collection;
                            use Doctrine\ORM\Mapping\Entity;
                            use Doctrine\ORM\Mapping\Table;
                            use Doctrine\ORM\Mapping\Id;
                            use Doctrine\ORM\Mapping\GeneratedValue;
                            use Doctrine\Bundle\DoctrineBundle;
                            use Doctrine\Bundle\DoctrineBundle\Controller;
                            use vich\UploaderBundle\Mapping\Annotation;
                            use Doctrine\ORM\Mapping\column;  
                            
                            
                            
                            /**
                             * @ORM\Entity(repositoryClass=PostRepository::class)
                             * @Vich\Uploadable
                             **/
                            
                            class Post {
                            
                                /**
                                 * @ORM\Id()
                                 * @ORM\GeneratedValue() 
                                 * @ORM\Column(type="integer")
                                 **/
                               
                                 private $id;
                            
                                /**
                                 * @ORM\Column(type="string", length=255)
                                 */
                            
                                private $name;
                            
                                /**
                                 * @ORM\Column(type="string", length=255)
                                 */
                                private $column;
                                 /**
                                * @ORM\Column(type="string", length=255)
                                */
                                private $content;
                            
                                /**
                                * @ORM\Column(type="string", length=255)
                                * @var \Datetime
                                */
                            
                                private $image;
                            
                                /**
                                 * @Vich\UploadableField(mapping="product_images", fileNameProperty="image")
                                 * @var File
                                 */
                                
                                private $imageFile;
                            
                                /**
                                 * @ORM\Column(type="file")
                                 * @var File
                                 */
                            
                                private $updatedAt;
                            
                                /** 
                                 * @ORM\Column(type="text")
                                 * @var File
                                 */
                            
                                private $slug;
                            
                                /** 
                                 * @ORM\Column(type="string", length=255)
                                 */    
                                
                                public function setImageFile(File $image = null)
                                {
                                    $this->imageFile = $image;
                            
                                    // VERY IMPORTANT:
                                    // It is required that at least one field changes if you are using Doctrine,
                                    // otherwise the event listeners won't be called and the file is lost
                                    if ($image) {
                                        // if 'updatedAt' is not defined in your entity, use another property
                                        $this->updatedAt = new \DateTime('now');
                                    }
                                }
                                public function getImageFile()
                                {
                                    return $this->imageFile;
                                }
                            
                                public function setImage($image)
                                {
                                    $this->image = $image;
                                }
                            
                                public function getImage()
                                {
                                    return $this->image;
                                }
                            
                                public function getId(): ?int
                                {
                                    return $this->id;
                                }
                            
                                public function getName(): ?string
                                {
                                    return $this->name;
                                }
                            
                                public function setName(string $name): self
                                {
                                    $this->name = $name;
                            
                                    return $this;
                                }
                            
                                public function getSlug(): ?string
                                {
                                    return $this->slug;
                                }
                            
                                public function setSlug(string $slug): self
                                {
                                    $this->slug = $slug;
                            
                                    return $this;
                                }
                            }
                            



                            -
                            Edité par NelsonCaterino 4 novembre 2020 à 15:13:50

                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 novembre 2020 à 15:26:57

                              As-tu lu et tenté de comprendre le message d'erreur avant de le poster ici ? Parce qu'il contient sinon LA solution, au moins une piste… et tu as de la documentation prévue pour t'aider aussi, je serais surpris que cela n'y soit pas expliqué.

                              Si jamais, les annotations, c'est comme des classes : quand on les utilise (même uniquement de nom) dans une autre classe, il faut mettre use … au début du fichier (mais après namespace), où les points de suspension sont soit le nom de la classe avec l'espace de noms, soit l'espace de nom où se trouve la classe. Pour faire un parallèle (mais attention, c'est pas aussi simple), c'est un peu comme avec require où tu mettrais soit le chemin exact du fichier, soit uniquement le chemin du dossier qui contient les fichiers intéressants.

                              Maintenant, il y a encore du ménage à faire dans les lignes 5 à 19 : là comme ça, je pense que tu n'as besoin que des lignes 5 à 11. Les lignes 12, 13, 14, 15 et 19 sont comprises dans la ligne 8, les lignes 16 et 17 n'ont à mon avis pas vraiment d'utilité dans une entité, et la 18 est la même que la 7, mais sans l'alias.

                              • Partager sur Facebook
                              • Partager sur Twitter
                                5 novembre 2020 à 12:51:00

                                merci des conseils Ymox je vais regarder ça
                                • Partager sur Facebook
                                • Partager sur Twitter

                                [Semantical Error] The annotation @Doctrine\ORM\ma

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                • Editeur
                                • Markdown