从Laravel Query Builder生成原始MySQL查询
如何获取查询的查询mysql
laravel
转换:
App\User::where('balance','>',0)->where(...)->get();
自:
SELECT * FROM users WHERE `balance`>0 and ...
如何获取查询的查询mysql
laravel
转换:
App\User::where('balance','>',0)->where(...)->get();
自:
SELECT * FROM users WHERE `balance`>0 and ...
使用 laravel 的方法获取要执行的查询,如下所示toSql()
App\User::where('balance','>',0)->where(...)->toSql();
但是 Laravel 不会在查询中显示参数,因为它们是在准备查询后绑定的。要获取绑定参数,请使用以下命令
$query=App\User::where('balance','>',0)->where(...);
print_r($query->getBindings() );
启用查询日志 as,然后将最后运行的查询输出到屏幕上,您可以使用此功能,DB::enableQueryLog()
dd(DB::getQueryLog());
您可以将此功能添加到您的助手中
function getRealQuery($query, $dumpIt = false)
{
$params = array_map(function ($item) {
return "'{$item}'";
}, $query->getBindings());
$result = str_replace_array('\?', $params, $query->toSql());
if ($dumpIt) {
dd($result);
}
return $result;
}
并像这样使用:
getRealQuery(App\User::where('balance','>',0)->where(...),true)