首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简化symfony2中的查询

简化symfony2中的查询
EN

Stack Overflow用户
提问于 2012-01-07 18:53:42
回答 1查看 406关注 0票数 1

(我不知道如何使标题更加清晰-请随意编辑)

我有两张桌子上有葡萄酒和酿酒厂。每种酒都有一家酿酒厂。

如果我想用相应的酿酒厂列出所有葡萄酒的清单,我可以这样做:

代码语言:javascript
运行
复制
$entities = $em->getRepository('MyBundle:Wine')->findAll();

代码语言:javascript
运行
复制
{% for entity in entities %}
  {{ entity.winery.name }} {{ entity.name }} <br />
{% endfor %}

这个解决方案的问题是,有一个额外的查询,为每一个酒厂,我想防止。

我尝试了在symfony2手册中使用的技术,但是我无法让它工作(它是否只对一个结果起作用?)

通常使用SQL,我只需要做一个LEFT JOIN,但我不知道如何在Doctrine2中实现这一点。

代码语言:javascript
运行
复制
$qb = $this->createQueryBuilder('w', 'wnr');
$qb->leftJoin('w.winery', 'wnr');
$qb->orderBy('w.name', 'ASC');

$qb->getQuery()->getResult();

???

我会感谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-07 19:38:04

您在DQL查询中选择了酿酒厂吗?

代码语言:javascript
运行
复制
$entities = $em->getRepository('MyBundle:Wine')
    ->createQueryBuilder('w')
    ->select('w, wnr')
    ->leftJoin('w.winery', 'wnr');
    ->getQuery()
    ->getResult();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8772151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档