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

Doctrine2 PHP Discussion :

Problème avec une relation ManyToOne Semantical Error] line 0, col 89 near 'c ': Error: Class xxx\xxx\Entity\U


Sujet :

Doctrine2 PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Par défaut Problème avec une relation ManyToOne Semantical Error] line 0, col 89 near 'c ': Error: Class xxx\xxx\Entity\U
    Bonjour,
    Je tourne en rond en essayant d'ajouter une relation entre les tables user(id, , country_id, username) et country(id,name) . J'ai lancé les différentes commandes après avoir soigneusement ajouté les annotations et constructeur.

    User :

    /**
    * @ORM\ManyToOne(targetEntity="Country", inversedBy="users")
    * @ORM\JoinColumn(name="country_id", referencedColumnName="id")
    */

    protected $country;


    Country :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       /**
         * @ORM\OneToMany(targetEntity="User", mappedBy="country")
         */
        protected $users;
     
     
        public function __construct()
        {
            $this->users = new ArrayCollection();
        }
    J'ai ensuite lancé les commandes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    php app/console doctrine:generate:entities FrontBundle
    php app/console doctrine:schema:update --force
    En resultat le code ci-dessous a été généré

    User :

    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
     
        /**
         * Set country
         *
         * @param toto\FrontBundle\Entity\Country $country
         */
        public function setCountry(\toto\FrontBundle\Entity\Country $country)
        {
            $this->country = $country;
        }
     
        /**
         * Get country
         *
         * @return toto\FrontBundle\Entity\Country 
         */
        public function getCountry()
        {
            return $this->country;
        }

    Country :
    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
        /**
         * Add users
         *
         * @param toto\FrontBundle\Entity\User $users
         */
        public function addUser(\toto\FrontBundle\Entity\User $users)
        {
            $this->users[] = $users;
        }
     
        /**
         * Get users
         *
         * @return Doctrine\Common\Collections\Collection 
         */
        public function getUsers()
        {
            return $this->users;
        }

    Tout a l'air de bien fonctionner. Sauf que quand je lance la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
           $query = $em->createQuery(
                'SELECT u
                 FROM totoFrontBundle:User u
                     JOIN u.Country c
                     WHERE u.id = :id
                 '
            )->setParameters(array('id'=> 1));
            $user = $query->getResult();
    J'ai systematiquement cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [Semantical Error] line 0, col 89 near 'c
    ': Error: Class xxx\xxx\Entity\User has no association named Country

    Je vous remercie d'avance de votre aide.
    Sibko1

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Par défaut En utilisant le createQueryBuilder ça marche mieux
    $query = $em->createQueryBuilder('r')
    ->select('rzpp')
    ->where('rzpp.id = :id')
    ->from('totoFrontBundle:User', 'rzpp')
    ->leftJoin("rzpp.country", "p")
    ->setParameter('id', '1')
    ->getQuery();


  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Par défaut
    Bonjour,
    l'association est country (en minuscule)
    $query = $em->createQuery(
    'SELECT u
    FROM totoFrontBundle:User u
    JOIN u.country c
    WHERE u.id = :id
    '
    )->setParameters(array('id'=> 1));
    $user = $query->getResult();
    PS: merci d'utiliser la balise [code]

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Par défaut Merci pour ton aide
    Merci beaucoup

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

Discussions similaires

  1. Probleme avec une relation ManytoOne
    Par decad7 dans le forum Doctrine2
    Réponses: 1
    Dernier message: 04/02/2013, 18h21
  2. Problème avec une relation et le fetch en cascade
    Par djarBoy dans le forum QxOrm
    Réponses: 3
    Dernier message: 25/05/2012, 14h02
  3. Problème avec une relation many-to-many
    Par jillthe1 dans le forum Doctrine2
    Réponses: 9
    Dernier message: 19/12/2011, 21h05
  4. Réponses: 1
    Dernier message: 17/10/2010, 19h08
  5. Problème avec une relation maître détail
    Par nb-wissam dans le forum Forms
    Réponses: 2
    Dernier message: 15/06/2010, 11h03

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