如何使用Symfony 2查找没有任何答案的所有问题?

如何使用Symfony 2查找没有任何答案的所有问题?,symfony,doctrine-orm,eager-loading,Symfony,Doctrine Orm,Eager Loading,我有两个实体以适当的关系提问和回答 我想要一个优化的方法(更少的资源)来找到所有的问题(只有id和标题),而没有原则的答案 谢谢您的回答。在控制器中 使用QueryBuilder: $repository = $this->getDoctrine()->getRepository('AcmeStoreBundle:Question'); $qb = $repository->createQueryBuilder('Question'); $query = $qb -&g

我有两个实体以适当的关系提问和回答

我想要一个优化的方法(更少的资源)来找到所有的问题(只有id和标题),而没有原则的答案

谢谢您的回答。

在控制器中

使用QueryBuilder:

$repository = $this->getDoctrine()->getRepository('AcmeStoreBundle:Question');
$qb = $repository->createQueryBuilder('Question');
$query = $qb
    ->select('DISTINCT Question.id, Question.title')
    ->leftJoin('Question.answers', 'Answer', $qb->expr()->isNull('Answer.id'))
    ->getQuery();

$questions = $query->getArrayResult();
或DQL(部分对象:

$query = $em->createQuery("select partial Question.{id,title} 
                           from MyApp\Domain\Question Question 
                           left join Question.answers Answer 
                           where Answer.id is NULL");

$questions = $query->getResult();
查询生成器将返回一个数组,而DQL将返回部分对象

见: