如何记录所有 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();
我在 Slim3 框架内独立使用 Eloquent。 我想记录来自 Eloquent 的所有数据库查询,我看到了一些实现,但我缺少的是在进行查询时记录查询,并且没有在每个模型请求后插入显式代码。
我发现了这个:
可能我需要一个侦听器,但我该如何使用它以及如何获取所有查询? 这是我在 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();