Laravel getQueryLog 显示行查询被执行
Posted
技术标签:
【中文标题】Laravel getQueryLog 显示行查询被执行【英文标题】:Laravel getQueryLog show line query is executed 【发布时间】:2014-08-13 16:38:57 【问题描述】:正如标题所说,我想知道是否有办法让getQueryLog
函数显示查询行。
var_dump(DB::getQueryLog())
【问题讨论】:
不,它没有开箱即用。 【参考方案1】:
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;
);
【讨论】:
以上是关于Laravel getQueryLog 显示行查询被执行的主要内容,如果未能解决你的问题,请参考以下文章