Rumah > Artikel > pembangunan bahagian belakang > Mengapakah DB::getQueryLog() Mengembalikan Tatasusunan Kosong dalam Laravel 5?
Mengambil Log Masuk Perlaksanaan Pertanyaan Laravel 5: Menyelesaikan DB::getQueryLog() Tatasusunan Kosong
Apabila cuba melihat log untuk pertanyaan yang dilaksanakan , pembangun mungkin menemui nilai pulangan tatasusunan kosong daripada DB::getQueryLog(). Untuk menangani perkara ini, adalah penting untuk terlebih dahulu mendayakan log pertanyaan, yang dilumpuhkan secara lalai dalam Laravel 5 untuk mengoptimumkan penggunaan memori.
Mendayakan Log Pertanyaan
DB::enableQueryLog();
DB::connection('my_connection')->enableQueryLog();
Mendapatkan Log Pertanyaan
Sekali didayakan, log pertanyaan boleh diambil menggunakan:
print_r(DB::getQueryLog());
Pendekatan Pertengahan
Untuk mendayakan pengelogan pertanyaan hanya semasa permintaan HTTP kitaran hayat:
class LogQueryMiddleware { public function handle($request, Closure $next) { DB::enableQueryLog(); $response = $next($request); dd(DB::getQueryLog()); // Log queries here return $response; } } // Add the middleware to the app app()->middleware([LogQueryMiddleware::class]);
Pengelogan Perintah Artisan
Untuk arahan artisan, di mana rantaian middleware tidak dilaksanakan:
// In bootstrap/app.php app()->events->listen('artisan.start', function() { DB::enableQueryLog(); });
Memori Pengurusan
Pertanyaan yang berlebihan boleh membawa kepada masalah ingatan. Adalah disyorkan untuk mendayakan pengelogan pertanyaan hanya untuk tujuan penyahpepijatan:
if (app()->environment('local')) { DB::enableQueryLog(); }
Dengan mengikut langkah ini, pembangun boleh melihat log pertanyaan dengan berkesan dan memperoleh cerapan berharga ke dalam interaksi pangkalan data aplikasi mereka.
Atas ialah kandungan terperinci Mengapakah DB::getQueryLog() Mengembalikan Tatasusunan Kosong dalam Laravel 5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!