我们使用全局的 Config 类获取配置信息:
Config::get('database.log', false)
如果没有开启数据库日志,则手动处理,将上述 illuminate.query 事件的监听器写入系统内...当然传入的参数要多一些, query, bindings, time, name,分别是 SQL 语句,绑定的参数,执行的时间,以及标志名。...为了处理方便,将所有原始数据写入 Log 类方法的第二个传参, 我们将参数打包到数组:
$data = compact('bindings', 'time', 'name');
因为单个SQL语句绑定的参数有很多...我们需要做的工作,就是把位置参数和SQL语句进行还原,生成原始的带参数的SQL语句, 不得不提 vsprintf 这个函数,大家有必要深入学习一下。..., array('%%', '%s'), $query);
$query = vsprintf($query, $bindings);
注意laravel生成的SQL语句占位符是问号,而vsprintf