FOSRestBundle序列化程序导致查询过多

时间:2016-07-03 08:27:50

标签: symfony doctrine query-builder fosrestbundle

我在我的API中使用FOSrestbundle将我的对象作为JSON。 所以我的控制器看起来像那样:

abc.com/b/personal

我的问题是,一篇文章包含评论,由用户添加,所以我的json看起来像这样:

public function getArticleAction($id)
    {
        $article = $this->getDoctrine()
            ->getRepository('ApiBundle:Article')
            ->find($id);
        return $this->handleView($this->view($article));
    }

当我渲染它时,查询太多,每个评论都有一个查询来获取用户信息。

我是否必须使用querybuilder和很多连接来获取我的文章对象(因为它只是一个示例,但我有很多关系)才能在一个查询中获取所有信息,或者是否有其他技巧可以避免它?

1 个答案:

答案 0 :(得分:0)

在使用added_by查询数据时,您应使用EAGER加载Doctrine关系。这样,您将立即查询序列化所需的所有数据。