2017-05-25 2 views
0

J'ai une entité Utilisateur avec relation manyToOne avec Gallery. L'entité Utilisateur a une relation oneToMany avec Insurance. L'entité d'assurance ont une relation manyToOne avec Gallery.Symfony obtenir des galeries à partir de deux entités

Je veux obtenir tous Galerie liée à l'utilisateur et à l'assurance de l'utilisateur.

Dans GalleryRepository J'ai cette requête:

qb = $this->createQueryBuilder('o'); 
    $qb->select('o') 
     ->join("AppBundle:Insurance", 'i') 
     ->where(':user MEMBER OF o.userDocument') 
     ->orWhere(':user MEMBER OF o.insuranceDocument') 
     ->setParameter('user', $user); 

Mais cette requête retourne la Galerie relationés avec l'utilisateur, et une seule galerie d'assurance (cet utilisateur ont deux assurances).

Qu'est-ce que je fais mal?

Merci!

+0

peut-être le problème est que vous n'avez pas rejoint la table utilisateur dans la requête. –

+0

@MehmetSoylu merci pour votre réponse. Sans la jointure, le résultat est le même – RL83

+0

Au lieu d'utiliser ouWhere use andWhere –

Répondre

0

Avec cette requête:

$qb->select('o') 
     ->leftJoin("AppBundle:Insurance", 'i', 'i.user = :user') 
     ->where(':user MEMBER OF o.insuranceDocument') 
     ->andWhere('i.user = :user') 
     ->setParameter('user', $user); 

Je reçois tous Galerie de tous les utilisateurs.

Je deviens fou:/