【问题标题】:Laravel 4 : How to display SQL queries ran?Laravel 4:如何显示运行的 SQL 查询?
【发布时间】:2014-08-11 22:02:22
【问题描述】:

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

//run eloquent functions
$allMessages = Messages::with('User')->whereIn('conv_id',$conv_id)->orderBy('created_at','aadesc')->take(10);

$q= DB::getQueryLog();
dd($q);

但它返回一个空数组。所以我想按照建议做end($q) 是没用的。

我也尝试了接受的answer to a question 并将其添加到我的路线文件的末尾,但没有任何反应。我还是 Laravel 的新手,需要一些指导。谢谢!

【问题讨论】:

    标签: php logging laravel laravel-4 eloquent


    【解决方案1】:

    一种流行的方法是监视 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);
    

    这将输出正在运行的查询。

    另一种选择是使用 Laravel4 调试器包,它会自动显示运行的查询:https://github.com/barryvdh/laravel-debugbar

    【讨论】:

    • 谢谢!欣赏它。 :)
    猜你喜欢
    • 1970-01-01
    • 2015-02-13
    • 2013-12-03
    • 2013-01-19
    • 2014-11-02
    • 2015-01-03
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    相关资源
    最近更新 更多