【发布时间】:2021-04-04 05:05:49
【问题描述】:
我需要查看在 api 中执行的所有查询。 我尝试了 3 种方法,但它们都不起作用
1:
\Illuminate\Support\Facades\DB::listen(function ($query) {
Log::info($query->sql, ['Bindings' => $query->bindings, 'Time' => $query->time]);
});
listen 方法不存在。
2:
Event::listen('Illuminate\Database\Events\QueryExecuted', function ($query) {
Log::debug($query->sql . ' - ' . serialize($query->bindings));
});
这个也不行。
3:
DB::connection("mysql2")->enableQueryLog();
DB::connection("mysql2")->getQueryLog();
我把 1 和 2 放在 bootstrap/app.php 中,第三个放在 api 控制器中。
我应该提到我有不同的数据库。
还有其他方法吗?
【问题讨论】:
-
你试过laravel debugger吗?
-
对
listen的调用可能应该在服务提供商的boot方法中......但listen方法在连接上,因此您需要在两个连接上定义该侦听器 -
@BABAKASHRAFI 是的,我试过了,但是由于旧的 php 、 compser 和 packages 无法安装调试器
-
@lagbox 我也尝试了
listen的连接,你能解释一下吗?也许我犯了错误