我知道您可以在Laravel中记录查询。但我想知道是否还可以记录运行查询的脚本的名称。例如,如果记录了update
个查询,我也想知道它是由PostController.php
发起的。
我正在处理一个使用数百个查询的非常大的应用程序,当我需要删除一个查询时,很难找到该查询的来源。
有什么想法吗?
答案 0 :(得分:0)
正如您在Connection::logQuery()
中所看到的,每个数据库查询都会触发QueryExecuted事件。
您可以listen to this event,并使用debug_backtrace()
抓取函数调用。
use Illuminate\Support\Facades\DB;
DB::listen(function ($query) {
// send this to a log or whatever
$backtrace = debug_backtrace();
// also, you can read $query to get the SQL string, bindings...
});
主要工作可能是过滤数据,以隔离您要查找的内容。