繁体   English   中英

简化symfony2中的查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM