laravelで実行されたSQLを確認しようとする際に、bindされた変数を置換するのが面倒なのでそのまま実行可能なSQLをログに吐き出す方法。
app/Providers/AppServiceProvider.php
public function boot()
{
\DB::listen(function ($query) {
$sql = $query->sql;
for ($i = 0; $i < count($query->bindings); $i++) {
$sql = preg_replace("/\?/", $query->bindings[$i], $sql, 1);
}
\Log::info($sql);
});
}