(1) Laravel 中调试输出 SQL 语句的简便方法 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

Elequent ORM ->toSql() 可以输出sql语句,但如果带 binding 参数的,输出的语句会带?,类似下面这样:

select * from `rooms` where `rooms`.`project_id` = ?

barryvdh/laravel-debugbar 这个包需要添加代码注入配置,仅限浏览器输出,如果是 postman 工具调试,就无法查看输出的SQL了。

简便方法

可以把下面代码放在查询语句前:

\DB::listen(function($sql, $bindings, $time) {
     foreach ($bindings as $replace){
         $value = is_numeric($replace) ? $replace : "'".$replace."'";
         $sql = preg_replace('/\?/', $value, $sql, 1);
     }
     dd($sql);
 })

禅师 :while (1) { simpler & faster; }


Original url: Access
Created at: 2018-11-07 14:23:16
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论