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();
我正在使用 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();