Как регистрировать все красноречивые запросы - PullRequest
0 голосов
/ 21 июня 2019

Я использую Eloquent в рамках Slim3.Я хотел бы регистрировать все запросы к БД из Eloquent, я вижу некоторую реализацию, но чего мне не хватает, так это регистрировать запрос, когда он сделан, и без явного кода для вставки после каждого запроса модели.

Я нашелэто: Laravel Eloquent отображает журнал запросов Он работает, но лучшее, что я мог получить, это промежуточное ПО 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 Ответ

1 голос
/ 01 июля 2019

Прослушивание событий запроса на соединении:

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