web-dev-qa-db-fra.com

doctrine 2 générateur de requêtes et tables de jointure

J'essaie d'obtenir tous les commentaires pour chaque article sur ma page d'accueil

return 
$this->createQueryBuilder('c')
->select('c')
->from('Sdz\BlogBundle\Entity\Commentaire' ,'c')                
->leftJoin('a.comments' ,'c')->getQuery()->getResult() ;

mais je reçois cette erreur

[Semantical Error] line 0, col 58 near '.comments c,': Error:
Identification Variable a used in join path expression but was not defined before.

PS: Le mappage est correct car je peux voir l'article de la page avec ses commentaires.

19
kosaidpo

Dans le cas où cela vous pose toujours des problèmes, voici votre requête en utilisant la syntaxe trouvée dans les exemples de la documentation Doctrine 2.1.

Je suppose que votre requête réside dans une méthode de référentiel personnalisé et que "a" est l'abréviation de "Article".

$em = $this->getEntityManager();
$qb = $em->createQueryBuilder();

$qb->select(array('a', 'c'))
   ->from('Sdz\BlogBundle\Entity\Article', 'a')
   ->leftJoin('a.comments', 'c');

$query = $qb->getQuery();
$results = $query->getResult();

return $results;
37
cantera