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);
})
本作品採用《CC 協議》,轉載必須註明作者和本文連結