因为页面执行的sql很多,因此决定记录一下执行的sql语句。最简便快速的方式就是使用下面的代码:
app\Providers\AppServiceProvider.php
在boot方法里面加上下面的代码:
\DB::listen(function ($query) {
$tmp = str_replace('?', '"'.'%s'.'"', $query->sql);
$qBindings = [];
foreach ($query->bindings as $key => $value) {
if (is_numeric($key)) {
$qBindings[] = $value;
} else {
$tmp = str_replace(':'.$key, '"'.$value.'"', $tmp);
}
}
$tmp = vsprintf($tmp, $qBindings);
$tmp = str_replace("\\", "", $tmp);
\Log::info(' execution time: '.$query->time.'ms; '.$tmp."\n\n\t");
});
然后在laravel.log里面就能看到下面的日志了,非常的方便。