[英]Simplifying a query in symfony2
(我不确定如何使标题更清晰-随时对其进行编辑)
我有两张桌子,里面有葡萄酒和葡萄酒厂 。 每种葡萄酒都有一个酒庄。
如果我想用相应的酿酒厂生产所有葡萄酒的清单,我可以这样做:
$entities = $em->getRepository('MyBundle:Wine')->findAll();
和
{% for entity in entities %}
{{ entity.winery.name }} {{ entity.name }} <br />
{% endfor %}
这个解决方案的问题在于,我想要阻止每个酒厂的额外查询。
我尝试了symfony2手册中使用的技术,但我无法让它工作(它是否仅适用于单个结果?)。
通常,使用SQL,我只会做一个LEFT JOIN
但我只是想不出如何在Doctrine2中完成它。
$qb = $this->createQueryBuilder('w', 'wnr');
$qb->leftJoin('w.winery', 'wnr');
$qb->orderBy('w.name', 'ASC');
$qb->getQuery()->getResult();
???
感谢您的帮助!
您是否在DQL查询中选择了Winery?
$entities = $em->getRepository('MyBundle:Wine')
->createQueryBuilder('w')
->select('w, wnr')
->leftJoin('w.winery', 'wnr');
->getQuery()
->getResult();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.