Symfony从两个实体获得画廊

时间:2017-05-25 08:46:58

标签: symfony doctrine-orm sonata-media-bundle

我有一个实体用户关系manyToOne与Gallery。 用户实体将oneToMany与Insurance相关联。 保险实体与图书馆有很多关系。

我希望所有图库都与用户和用户保险相关联。

在GalleryRepository中我有这个查询:

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);

但是此查询返回与用户关联的图库,并且只有一个来自保险的图库(此用户有两个保险)。

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

使用此查询:

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

我从所有用户那里获得所有图库。

我要疯了:/