【发布时间】:2014-08-13 16:38:57
【问题描述】:
正如标题所说,我想知道是否有办法让getQueryLog 函数显示查询行。
var_dump(DB::getQueryLog())
【问题讨论】:
-
不,它没有开箱即用。
标签: laravel
正如标题所说,我想知道是否有办法让getQueryLog 函数显示查询行。
var_dump(DB::getQueryLog())
【问题讨论】:
标签: laravel
getQueryLog() 做不到,但是可以监听查询,生成回溯,最后提取行号:
// routes.php
Event::listen('illuminate.query', function($query,$binding,$time,$connections){
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
foreach ($backtrace as $trace) {
if(array_key_exists('file',$trace) && array_key_exists('line',$trace)){
if( strpos($trace['file'],base_path().'/app') !== false ){
var_dump(array(
'query' => $query
,'binding' => $binding
,'time' => $time
,'connection' => $connections
,'file' => $trace['file']
,'line' => $trace['line']
));
break;
}
}
}
});
【讨论】: