如何记录所有 Eloquent 查询

How to log all Eloquent queries

我在 Slim3 框架内独立使用 Eloquent。 我想记录来自 Eloquent 的所有数据库查询,我看到了一些实现,但我缺少的是在进行查询时记录查询,并且没有在每个模型请求后插入显式代码。

我发现了这个: 它有效,但我能得到的最好的是一个 Slim 中间件,它在所有请求的末尾立即记录所有查询。

可能我需要一个侦听器,但我该如何使用它以及如何获取所有查询? 这是我在 Slim 中的 eloquent 启动:

$capsule = new \Illuminate\Database\Capsule\Manager;
    $capsule->addConnection($config['db']);
    $capsule->getConnection("default")->enableQueryLog();
    $capsule->setAsGlobal();
    //$capsule->setEventDispatcher(new \Illuminate\Events\Dispatcher())->listen($events, $listener);
    $capsule->bootEloquent();

监听连接上的查询事件:

$capsule = new \Illuminate\Database\Capsule\Manager;
$capsule->addConnection($config['db']);
$capsule->getConnection("default")->enableQueryLog();
$capsule->setAsGlobal();

$capsule->getConnection()->setEventDispatcher(new \Illuminate\Events\Dispatcher);
$capsule->getConnection()->listen(function ($query) {
    // TODO: Log query.
});

$capsule->bootEloquent();