laravel 框架的tosql打印出来的sql未绑定参数,怎么可以打印带参数的sql?
/**
* Combines SQL and its bindings
*
* @param \Eloquent $query
* @return string
*/
public static function getEloquentSqlWithBindings($query)
{
return vsprintf(str_replace('?', '%s', $query->toSql()), collect($query->getBindings())->map(function ($binding) {
return is_numeric($binding) ? $binding : "'{$binding}'";
})->toArray());
}
对于调试来说,这可能非常方便,因为它返回带有绑定的SQL,因此您可以立即将其放入数据库控制台。 把这个语句放在公共方法中使用时,直接调用即可
$manUser = User::where('id', $params['userId']);
dd(self::getEloquentSqlWithBindings($manUser));
常见的做法:是不带绑定参数的
$manUser = User::where('id', $params['userId']);
dd($manUser->toSql());
赞赏码
非学,无以致疑;非问,无以广识