我正在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();
答案 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();