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
654 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!

sumber:php.cn
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