如何记录所有口才查询

时间:2019-06-21 08:22:23

标签: php laravel eloquent slim-3

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

我发现了这一点: Laravel Eloquent display query log 它可以工作,但是我能得到的最好的是一种Slim中间件,它在所有请求日志的末尾同时进行所有查询。

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

$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();

1 个答案:

答案 0 :(得分:1)

收听有关连接的查询事件:

$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();