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();,否则打印出来会是空。