lavarel5打印最后一条sql语句

ThinkPHP中通过M()->getLastSql();就可以打印最后一句sql,lavarel里如何做呢?
首先在父类控制的里添加:

public function __construct()
{
    DB::enableQueryLog();
}
function lastSql()
{
    $sql = DB::getQueryLog();
    $query = end($sql);
    dd($query);
}

然后就可以通过$this->lastSql();来打印sql语句。

如果觉得不方便还可以像dd函数那样,新增一个函数来打印,在\vendor\laravel\framework\src\Illuminate\Support\helpers.php里添加:

if (! function_exists('ds')) {
    /**
     * Dump the last sql.
     *
     * @param  mixed
     * @return string
     */
    function ds()
    {
        $sql = DB::getQueryLog();
        $query = end($sql);
        dd($query);
    }
}

但前提是控制器的构造函数里必须加这一行:DB::enableQueryLog();,否则打印出来会是空。

发表评论

邮箱地址不会被公开。 必填项已用*标注