laravel 框架的tosql打印出来的sql未绑定参数,怎么可以打印带参数的sql?[通俗易懂]

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));

laravel 框架的tosql打印出来的sql未绑定参数,怎么可以打印带参数的sql?[通俗易懂]

 

常见的做法:是不带绑定参数的

 $manUser = User::where('id', $params['userId']);
        dd($manUser->toSql());

laravel 框架的tosql打印出来的sql未绑定参数,怎么可以打印带参数的sql?[通俗易懂]

参考:https://stackoverflow.com/questions/20045732/how-can-i-get-the-raw-query-string-from-laravels-query-builder-before-executing

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/111642.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号