Laravel 4:如何显示运行的SQL查询?

7 浏览
0 Comments

Laravel 4:如何显示运行的SQL查询?

在我的app/config/app.php文件中,我已经打开了'debug'=>true

我尝试了以下代码:

//运行eloquent函数
$allMessages = Messages::with('User')->whereIn('conv_id',$conv_id)->orderBy('created_at','aadesc')->take(10);
$q= DB::getQueryLog();
dd($q);

但是它返回一个空数组。所以我猜做end($q)是没有用的,就像建议的那样。

我还尝试了接受的问题的答案,并将其添加到我的路由文件的末尾,但没有任何反应。我对Laravel还是新手,需要一些指导。谢谢!

0
0 Comments

Laravel 4: 如何显示运行的SQL查询?

在Laravel 4中,有两种方法可以显示运行的SQL查询。一种方法是通过监视Eloquent的事件来输出数据库上运行的任何查询:

Event::listen('illuminate.query', function($query, $params, $time, $conn) 
{ 
    dd(array($query, $params, $time, $conn));
});
$allMessages = Messages::with('User')->whereIn('conv_id',$conv_id)->orderBy('created_at','aadesc')->take(10);

上述代码中,使用了`Event::listen`来监听`illuminate.query`事件。当有查询运行时,回调函数会输出查询的内容。

另一种方法是使用Laravel 4的调试器包,该包会自动显示运行的查询。可以通过以下链接获取该包:https://github.com/barryvdh/laravel-debugbar

以上就是在Laravel 4中显示运行的SQL查询的两种方法。

0