Laravel - 如何查看查询来源?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel - 如何查看查询来源?相关的知识,希望对你有一定的参考价值。

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

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

有任何想法吗?

答案

正如您在Connection::logQuery()中看到的,每个数据库查询都会触发QueryExecuted事件。

你可以使用listen to this event,并使用debug_backtrace()来抓取函数调用。

use IlluminateSupportFacadesDB;

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

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

以上是关于Laravel - 如何查看查询来源?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 中捕获查询异常以查看它是不是失败?

Laravel 5.8 有条件地插入 sql 片段

Laravel 4 查看sql查询

laravel特殊功能代码片段集合

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

你如何在 python 中处理 graphql 查询和片段?