Bonjour,
J'ai 3 entités:
1. Article
2. ArticleCompetency => ManyToOne vers Article et ManyToOne vers Competency
3. Competency
Dans ArticleRepository, je crée une méthode pour renvoyer un article avec ces compétences (et son attribut "niveau" qui se trouve dans ArticleCompetency).
Ca donne cela :
a.competencies étant la relation inverse de ArticleCompetency vers Article
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class ArticleRepository extends EntityRepository { public function getWithCompetencies($id) { $qb = $this->createQueryBuilder('a'); $qb ->leftJoin('a.competencies', 'comp') ->addSelect('comp') ->where('a.id = :id') ->setParameter('id', $id); return $qb->getQuery() ->getResult(); } }
Ca marche bien et je récupère dans getResult un tableau avec un objet ou j'ai bien mon article, l'Id de la compétence qui se trouve dans ArticleCompetency et le niveau qui se trouve dans la même entité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /** * @ORM\OneToMany(targetEntity="acama\REPP\BlogBundle\Entity\ArticleCompetency", mappedBy="article") */ private $competencies;
Le problème est que je ne vois pas comment aller chercher la désignation de la compétence qui se trouve dans Competency.
Comment faire la jointure entre ArticleCompetency et Competency, dans ma méthode getWithCompetencies ?
Merci d'avance pour votre aide.
Partager