我有一个使用Symfony 3.4和Sonata Admin创建的门户网站。
在特定的管理页面中,有很多生成的查询。我使用分析器跟踪它们但我看不到它们生成的 where :
使用不同的ID重复执行相同的查询很多次:
有没有办法了解哪里生成它们?我看到那篇帖子,目前似乎无法做到:
https://github.com/doctrine/DoctrineBundle/issues/722
我不能在分析器中的某个地方放一个dump/die
来获取特定的行吗?
答案 0 :(得分:4)
答案 1 :(得分:1)
这不是一项简单的任务,但我认为你可以通过调试日志信息,学说查询和执行时间表获得一些提示。
在时间轴中,您可以看到学说执行查询的时间,以及来自Doctrine和debug的信息,您可以加入执行时间和执行的查询。
我希望此信息可以帮助您
答案 2 :(得分:1)
自v1.11.0起,Doctrine Bundle可以在Symfony Profiler中显示查询回溯。 这可能有助于查找导致特定查询被执行的代码。
此功能默认情况下处于禁用状态,但是您可以在主义连接设置中使用[{
"id": 1,
"hobby": "Playing Guitar, and Basketball"
}, {
"id": 2,
"hobby": null
}]
配置来启用它。
有关更多信息,请参见https://symfony.com/blog/new-in-doctrinebundle-1-11-0#store-backtraces-when-profiling-queries。
答案 3 :(得分:0)
看起来没有简单的方法来跟踪查询启动器,但我发现以下帖子解释了为什么你可能会看到多个类似的查询: Doctrine2 in Symfony2: How can I see which object-call leads into a query?