Rumah > pembangunan bahagian belakang > tutorial php > Mengapa DB::getQueryLog() Array saya Kosong dalam Laravel 5?

Mengapa DB::getQueryLog() Array saya Kosong dalam Laravel 5?

Susan Sarandon
Lepaskan: 2024-11-13 14:14:02
asal
689 orang telah melayarinya

Why is my DB::getQueryLog() Array Empty in Laravel 5?

Empty DB::getQueryLog() Array dalam Laravel 5: Menyelesaikan Isu

Log pertanyaan Laravel 5 dilumpuhkan secara lalai, mengakibatkan tatasusunan kosong apabila memanggil DB::getQueryLog(). Untuk membetulkan isu ini, dayakan log pertanyaan secara eksplisit menggunakan mana-mana kaedah berikut:

  • Dayakan Log Pertanyaan Secara Program:

    DB::enableQueryLog();
    print_r(DB::getQueryLog());
    Salin selepas log masuk
  • Daftar Pendengar Acara:

    DB::listen(
      function ($sql, $bindings, $time) {
          // Process and store query log data
      }
    );
    Salin selepas log masuk

Petua Tambahan:

  • Berbilang Sambungan DB:
    Dayakan dan dapatkan semula log pertanyaan untuk sambungan tertentu:

    DB::connection('my_connection')->enableQueryLog();
    print_r(
     DB::connection('my_connection')->getQueryLog()
    );
    Salin selepas log masuk
  • Pendekatan Pertengahan:
    Dayakan pengelogan pertanyaan dalam kaedah pengendalian middleware dan dapatkan semula log dalam kaedah penamat:

    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());
      }
    }
    Salin selepas log masuk
  • Pelaksanaan CLI:
    Dayakan pengelogan pertanyaan dalam artisan.start acara:

    $app['events']->listen('artisan.start', function(){
      \DB::enableQueryLog();
    });
    Salin selepas log masuk

Pertimbangan Ingatan:

Laravel menyimpan log pertanyaan dalam ingatan. Untuk mengelakkan penggunaan memori yang berlebihan:

  • Dayakan pengelogan pertanyaan hanya untuk nyahpepijat.
  • Gunakan kod berikut untuk membolehkan pengelogan pertanyaan hanya dalam persekitaran pembangunan:

    if (App::environment('local')) {
      // The environment is local
      DB::enableQueryLog();
    }
    Salin selepas log masuk

Rujukan:

  • [Pengelogan Pertanyaan Laravel](https://laravel.com/docs/5.0/database#query-logging )

Atas ialah kandungan terperinci Mengapa DB::getQueryLog() Array saya Kosong dalam Laravel 5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan