Symfony2处理不在关系中的查询

时间:2015-08-04 08:44:25

标签: php mysql sql-server symfony dql

正如标题所说,我需要以某种方式查询与最佳方式无关的分配表。使用dql,您可以连接映射的表,但如果它们未映射,我该如何处理。

例如,我的主索引页面查询次数最多(现在为71次)。据我所知,将来查询的项目越多(例如,如果我添加100个产品,查询将会非常快速地增加。

最大的问题是我的索引页面不仅查询一个控制器。例如:

的indexAction:

newProducts

这只是已经查询了所有对象的索引控制器。但是这些对象来自featureProducts<span class="top">{% render controller("MpShopBundle:Navbar:navbar" ) %}</span> {% block sidebar %} {% render url( 'sidebar' ) %} {% endblock %} 以外的不同表格。也许我可以在一个查询中加入他们?但是他们想要分开。

不仅如此,在枝条中我还扩展了更多具有自己查询的控制器。

{{1}}

这一切总结为分配查询..减少查询计数最合理的方法是什么?

1 个答案:

答案 0 :(得分:1)

您发布的控制器会产生大约5个查询,加入$newProducts$featureProducts的查询不会保存任何内容。您的问题可能在于不是Fetch joined的关联,即:您的产品可能与某个其他实体有某种关联,当您在模板中迭代产品并想要获取关联的实体时,它将创建另一个查询到数据库加载该实体,因为它们是延迟加载的。请参阅this question了解如何解决此问题。