我和我的团队正在进行一个相当大的项目。查询无处不在 - 在 Controller 中,在 View 中的 View Composer (延迟加载)以及可能在其他一些服务中。跟踪这一切变得越来越困难,目前页面加载速度相当慢。
我应该在哪里放置\DB::enableQueryLog() 和\DB::getQueryLog() 来记录所有查询并转储它们?基本上,我在代码中寻找在任何查询发生之前发生的某个地方(放置 enableQueryLog()),并且我在寻找在 View 呈现之后发生的地方(转储 getQueryLog())。
解决这个问题的好方法是什么?
提前致谢。
最佳答案
完美的例子来了:
https://laravel.com/docs/5.3/database#listening-for-query-events
打开 app\Providers\AppServiceProvider.php 并将以下内容添加到 Boot()
函数中:
DB::listen(function ($query) {
var_dump([
$query->sql,
$query->bindings,
$query->time
]);
});
关于php - Laravel 5.3 - 如何记录页面上的所有查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41163199/