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() );
미들웨어 접근 방식:
미들웨어의 핸들 메서드에서 쿼리 로깅을 활성화하고 종료 메서드에서 로그를 검색합니다.
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 5에서 내 DB::getQueryLog() 배열이 비어 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!