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