DOCTRINE2 oneToMany与条件的关系 - 没有结果

时间:2016-06-21 13:28:12

标签: mysql doctrine-orm symfony

例如: 我有实体Post ...帖子有实体的集合评论 - 关系是oneToMany 注释可以通过参数deletedAt删除,默认为NULL 评论有另一个实体B的集合 - 关系是oneToMany

我为querybuilder做了最优化:

$qb = $this->createQueryBuilder('post');
$qb->select('post, comments, objectsOfB')
    ->andWhere('post.id = :id')->setParameter('id', $postId)
    ->leftJoin('post.comments', 'comments')
    ->andWhere('comments.deletedAt is NULL')
    ->leftJoin('comments.objectsOfB', 'objectsOfB');
  • 如果没有删除所有评论,则此SQL可用
  • 删除所有评论后,我没有结果

如何解决?

1 个答案:

答案 0 :(得分:1)

deletedAt检查移至联接:

$qb = $this->createQueryBuilder('post');
$qb->select('post, comments, objectsOfB')
    ->andWhere('post.id = :id')->setParameter('id', $postId)
    ->leftJoin('post.comments', 'comments', 'WITH', 'comments.deletedAt is NULL')
    ->leftJoin('comments.objectsOfB', 'objectsOfB');