Laravel - 如何查看查询来源?

时间:2018-03-02 23:52:55

标签: php laravel eloquent

我知道您可以在Laravel中记录查询。但我想知道是否还可以记录运行查询的脚本的名称。例如,如果记录了update个查询,我也想知道它是由PostController.php发起的。

我正在处理一个使用数百个查询的非常大的应用程序,当我需要删除一个查询时,很难找到该查询的来源。

有什么想法吗?

1 个答案:

答案 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...
});

主要工作可能是过滤数据,以隔离您要查找的内容。