一般都是推薦用debugbar的,安裝完了之後點畫面左下角的小方塊,找到queries欄,就看到SQL語句了,但這裡我不講這種傻瓜式工具,說點有技術含量的:
laravel輸出sql語句不是很簡單,需要自己寫一些代碼來實現這個功能。
把下面的代碼放到 app/Providers/AppServiceProvider.php中的boot方法裡 :
DB::listen(function ($sql) {
foreach ($sql->bindings as $i => $binding) {
if ($binding instanceof \DateTime) {
$sql->bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
} else {
if (is_string($binding)) {
$sql->bindings[$i] = "'$binding'";
}
}
}
$query = str_replace(array('%', '?'), array('%%', '%s'), $sql->sql);
$query = vsprintf($query, $sql->bindings); var_dump($query);
});網上很多監聽的代碼都是錯的,laravel 5.2只傳了一個參數進來,不是網上的3個。
現在我們可以在本地開發的時候進行sql的記錄,便於調試程序。也可以不輸出寫入文档。