我有两个实体问答,并有适当的关系。
我想要一种优化的方式(更少的资源)来找到所有问题(只有id和title),而没有学说的答案。
感谢您的回答。
答案 0 :(得分:1)
在你的控制器......
使用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将返回部分对象。
见: