ホームページ > バックエンド開発 > PHPチュートリアル > Laravel 5 で DB::getQueryLog() 配列が空になるのはなぜですか?

Laravel 5 で DB::getQueryLog() 配列が空になるのはなぜですか?

Susan Sarandon
リリース: 2024-11-13 14:14:02
オリジナル
646 人が閲覧しました

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

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 接続:
    特定の接続のクエリ ログを有効にして取得:

    DB::connection('my_connection')->enableQueryLog();
    print_r(
     DB::connection('my_connection')->getQueryLog()
    );
    ログイン後にコピー
  • ミドルウェア アプローチ:
    ミドルウェアの handle メソッドでクエリ ログを有効にし、terminate メソッドでログを取得します:

    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());
      }
    }
    ログイン後にコピー
  • CLI 実行:
    artisan.start でクエリ ログを有効にします。イベント:

    $app['events']->listen('artisan.start', function(){
      \DB::enableQueryLog();
    });
    ログイン後にコピー

メモリに関する考慮事項:

Laravel はクエリログをメモリに保存します。過度のメモリ使用を避けるには:

  • デバッグの場合のみクエリ ログを有効にします。
  • 開発環境でのみクエリ ログを有効にするには、次のコードを使用します:

    if (App::environment('local')) {
      // The environment is local
      DB::enableQueryLog();
    }
    ログイン後にコピー

参考文献:

  • [Laravel クエリロギング](https://laravel.com/docs/5.0/database#query-logging) )

以上がLaravel 5 で DB::getQueryLog() 配列が空になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート