首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结果数组中的Symfony2内部联接返回代理

结果数组中的Symfony2内部联接返回代理
EN

Stack Overflow用户
提问于 2013-12-07 01:33:26
回答 1查看 453关注 0票数 0

我知道这个查询工作就像一个护身符:

代码语言:javascript
复制
$result = $this->getEntityManager()->createQueryBuilder()
    ->select('banner','customer')
    ->from("MyBundle:Banner", 'banner')
    ->innerJoin('banner.customer', 'customer')
    ->getQuery()
    ->getResult();

稍后,在视图中,我可以迭代并打印{{banner.name}}{{banner.customer.name}},而无需对数据库进行额外的查询。

但是,相同的查询在innerJoin上做了一点更改:

代码语言:javascript
复制
$result = $this->getEntityManager()->createQueryBuilder()
    ->select('banner','customer')
    ->from("MyBundle:Banner", 'banner')
    ->innerJoin('MyBundle:Customer', 'customer', 'WITH', 'customer.id = banner.customer')
    ->getQuery()
    ->getResult();

foreach ($result as $e)
    echo get_class($e).'<br/>';
die(1);

此打印:

代码语言:javascript
复制
MyBundle\Entity\Banner
Proxies\__CG__\MyBundle\Entity\Customer
MyBundle\Entity\Banner
MyBundle\Entity\Banner
Proxies\__CG__\MyBundle\Entity\Customer
MyBundle\Entity\Banner
MyBundle\Entity\Banner
Proxies\__CG__\MyBundle\Entity\Customer
MyBundle\Entity\Banner

所以,如果我迭代这个结果,期望得到一个MyBundle\Entity\Banner对象,我就会遇到麻烦,所以:

这是像第二个示例一样执行innerJoin的预期结果吗?

是否需要额外的function callsyntaxdoctrine/symfony setup才能让它像第一个示例一样工作?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-12-07 01:50:39

使用双向oneToMany并从innerJoin调用中删除WITH

代码语言:javascript
复制
Customer:
  type: entity
  oneToMany:
    banners:
      targetEntity: Banner
      mappedBy: customer
Banner:
  type: entity
  manyToOne:
    customer:
      targetEntity: Customer
      inversedBy: banners
      joinColumn:
        name: customer_id
        referencedColumnName: id
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20430078

复制
相关文章

相似问题

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