我有两个实体问并通过适当的关系回答。
我想要一种优化的方法(较少的资源)来找到所有问题(只有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 MyAppDomainQuestion Question
left join Question.answers Answer
where Answer.id is NULL");
$questions = $query->getResult();
查询构建器将返回数组,而DQL将返回部分对象。
请参阅:
- http://docs.doctrine-project.org/en/latest/reference/query-builder.html
- http://docs.doctrine-project.org/en/latest/reference/partial-objects.html