Laravel 4 SQL日志/控制台

Sla*_*a V 13 laravel laravel-4

Laravel中是否有类似的东西可以让你看到正在执行的实际SQL?例如,在Rails中,您可以在控制台中看到SQL.在Django你有一个工具栏.

在Laravel 4中有类似的东西吗?

澄清一下:我的问题是如何在没有代码的情况下做到这一点.是否有内置在Laravel中的东西不需要我在应用程序中编写代码?

更新:我希望看到CLI查询(例如php artisan migrate)

Mae*_*aeh 16

如果您使用的是Laravel 4,请使用以下命令:

$queries    = DB::getQueryLog();
$last_query = end($queries);
Run Code Online (Sandbox Code Playgroud)


Ash*_*ora 10

我在Laravel 4中这样做.

只需在内部app/start/global.php或任何地方设置它,但确保它已加载,然后它将开始记录所有SQL查询.

Event::listen("illuminate.query", function($query, $bindings, $time, $name){
    \Log::sql($query."\n");
    \Log::sql(json_encode($bindings)."\n");
});
Run Code Online (Sandbox Code Playgroud)


小智 6

这是一个快速的Javascript代码段,您可以将其放到主页面模板上.只要包含它,所有查询都将输出到浏览器的Javascript控制台.它将它们打印在易于阅读的列表中,使您可以轻松浏览站点并查看每个页面上正在执行的查询.

完成调试后,只需将其从模板中删除即可.

<script type="text/javascript">
    var queries = {{ json_encode(DB::getQueryLog()) }};
    console.log('/****************************** Database Queries ******************************/');
    console.log(' ');
    $.each(queries, function(id, query) {
        console.log('   ' + query.time + ' | ' + query.query + ' | ' + query.bindings[0]);
    });
    console.log(' ');
    console.log('/****************************** End Queries ***********************************/');
</script>
Run Code Online (Sandbox Code Playgroud)


Nik*_*ess 5

有一个Composer包:https://packagist.org/packages/loic-sharma/profiler

它将在底部为您提供一个工具栏,其中包含SQL查询,日志消息等.请确保debug在配置中将其设置为true.