Laravel 5 中的空DB::getQueryLog() 陣列:解決問題
Laravel 5 的查詢記錄預設是停用的,導致日誌預設是停用的,導致記錄呼叫DB::getQueryLog() 時為空數組。若要解決此問題,請使用下列任一方法明確啟用查詢日誌:
以程式設計方式啟用查詢日誌:
DB::enableQueryLog(); print_r(DB::getQueryLog());
註冊活動監聽器:
DB::listen( function ($sql, $bindings, $time) { // Process and store query log data } );
其他提示:
其他提示:
DB::connection('my_connection')->enableQueryLog(); print_r( DB::connection('my_connection')->getQueryLog() );
其他小貼士>
class BeforeAnyDbQueryMiddleware { // Enable query logging before DB operations public function handle($request, Closure $next) { DB::enableQueryLog(); return $next($request); } // Retrieve query log after DB operations public function terminate($request, $response) { dd(DB::getQueryLog()); } }
多個資料庫連線:啟用並擷取特定的查詢日誌連接:
$app['events']->listen('artisan.start', function(){ \DB::enableQueryLog(); });
中間件方法:在啟用中間件的句柄方法中查詢日誌記錄並在終止方法中檢索日誌:
在artisan.start 事件中啟用查詢日誌記錄:
if (App::environment('local')) { // The environment is local DB::enableQueryLog(); }
以上是為什麼我的 DB::getQueryLog() 陣列在 Laravel 5 中為空?的詳細內容。更多資訊請關注PHP中文網其他相關文章!