Doctrine查询构建器“leftJoin”中的多对多关系

时间:2017-11-13 12:26:24

标签: php symfony doctrine-orm query-builder

我有两个实体Message和Skill,以及它们之间的多对多关系。我试图获得技能= 5或没有任何技能的所有消息。

$queryBuilder = $repository->createQueryBuilder('entity');
$queryBuilder->leftJoin('entity.skills', 'skill');
$queryBuilder->andWhere(
    $criteria->expr()->orX(
        $criteria->expr()->eq('skill.id', 5),
        $criteria->expr()->isNull('skill.id')
  )
)

但是在结果中我只有技巧= 5才有疑问。 如何在没有技巧或技巧的情况下选择问题= 5是单一查询?

1 个答案:

答案 0 :(得分:0)

$queryBuilder = $repository->createQueryBuilder('entity');
$queryBuilder->leftJoin('entity.skills', 'skill');
$queryBuilder->where('skill.id = 5');
$queryBuilder->orWhere('skill.id IS NULL');