Laravel 5.5 中调试输出 SQL 语句
之前一直用的是禅师大大的Laravel 中调试输出 SQL 语句的简便方法
但是,好像在Laravel 5.5 dev版本中不好使
于是我就依葫芦画瓢有了以下方法:blush: :smiley:
if (!function_exists('getSql')) {
function getSql ()
{
DB::listen(function ($sql) {
dump($sql);
$singleSql = $sql->sql;
if ($sql->bindings) {
foreach ($sql->bindings as $replace) {
$value = is_numeric($replace) ? $replace : "'" . $replace . "'";
$singleSql = preg_replace('/\?/', $value, $singleSql, 1);
}
dump($singleSql);
} else {
dump($singleSql);
}
});
}
}
使用方法:
1.将这个方法黏贴在项目的函数文件中
2.在查询方法前调用即可
3.最终打印的效果
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 7年前 自动加精
$singleSql = preg_replace('/\?/', $value, $singleSql, 1);
第 4 个参数一直没用过呢感觉可以简化一点点