Laravel Lumen - Eloquent 查询日志

Laravel Lumen - Eloquent Query Log

我正在使用 Laravel Lumen 构建一个 API。

我已经到了需要查明 Eloquent 正在生成什么 SQL 查询的地步。我知道如何在 Laravel 4 和 Laravel 5 中执行此操作,但我在 Lumen 中尝试了相同的代码,但查询为空?

$queries    = DB::getQueryLog();
$last_query = end($queries);

echo 'Query<pre>';
    print_r($last_query);
exit;

上面的代码,当 运行 in Laravel 工作正常时 - 在 Lumen 中查询是空白的?

要让查询登录 Laravel Lumen 正常工作,您需要启用它:

DB::connection()->enableQueryLog();

您可以将该代码添加到您的控制器、中间件等中,然后使用:

$queries    = DB::getQueryLog();
$lastQuery = end($queries);

dd($lastQuery)

打印您的查询。

您还可以将以下内容与 eloquent 一起使用:

$myModel = Users::where('active', true);

dd($myModel->getSql(), $myModel->getBindings());

在调用 ->first()->get()

之前,您必须 运行 getSql()getBindings()

只需在查询后调用它即可快速简单:

echo $query->toSql();