首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原理连接绕过延迟加载

原理连接绕过延迟加载
EN

Stack Overflow用户
提问于 2012-07-26 05:47:48
回答 1查看 2.4K关注 0票数 2

我刚刚开始探索Symfony2,我很惊讶它有这么多很棒的特性。我开始做博客教程的网址是:http://tutorial.symblog.co.uk/

但是使用2.1版而不是2.0版

我的问题是我有以下博客实体:

代码语言:javascript
复制
/**
 * @ORM\OneToMany(targetEntity="Comment", mappedBy="blog")
 */
protected $comments;

以及注释实体中的以下内容:

代码语言:javascript
复制
/**
 * @var string $blog
 *
 * @ORM\ManyToOne(targetEntity="Blog", inversedBy="comments")
 * @ORM\JoinColumn(name="blog_id", referencedColumnName="id")
 */
private $blog; 

我创建了这个函数来获取最新的博客并加入评论,这样我就不必延迟加载每个博客的评论,并避免多次调用comments表,如下所示:

代码语言:javascript
复制
$qb = $this->createQueryBuilder('b')
            ->select('b')
            ->leftJoin('b.comments', 'c')
            ->addOrderBy('b.created', 'DESC'); 

但是,当我在twig模板中运行时,该查询的结果是:blog.comments我得到了第一个检索博客的查询,其中正确地包含了连接,但是随后我没有使用连接的注释值,而是为每个博客条目调用了comments表?在某些情况下,我如何绕过该功能,但又能保持关系,以便可以从查看博客页面中获取博客所有评论?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-26 05:56:05

您还需要将注释对象添加到选择结果中:

代码语言:javascript
复制
->select('b', 'c')
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11659145

复制
相关文章

相似问题

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