Bonjour,
j'ai une requête assez complexe ( pour moi ) à effectuer et je ne m'en sort pas après de multiples essais.
J'expose le problème :
J'ai une entité User possédant une liaison ManyToMany réfléctive sur elle même.
Un User à donc un attribut $myFriends qui est une ArrayCollection de User.
J'ai également une entité Rencontre qui possède un attribut $idCapitaine, qui est le id de l'objet User qui à créé cette rencontre. Ce n'est pas une relation entre Rencontre et User. C'est moi qui dans le constructeur de Rencontre rempli cette attribut $idCapitaine.
J'ai un User A connecté à mon site, je voudrais que mon site affiche l'ensemble des objets rencontres créé par un ami de mon User A connecté.
j'avais fait cela :
Mais ce n'est pas la bonne façon de faire puisque je vais questionner les tables relationnel créé par doctrine au lieu de manipuler les objets. ( de toute facon ça ne fonctionne pas).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $query = $em->createQuery('SELECT r FROM Rencontre r WHERE r.idCapitaine MEMBER OF (SELECT friend_user_id FROM friends WHERE user_id = :id)'); $query->setParameters('id', $id );
Voila si quelqu'un avait une piste ce serait sympatoche
Merci
PS: Si votre solution nécessite que je crée une relation ManyToOne entre Rencontre et User, pour que Rencontre possède un attribut $Capitaine étant un User, cela me convient aussi ! je ne suis pas bloqué sur ma méthode.
Partager