@php // Capture ALL queries at render time (this is the last moment before displaying) if (isset($queryDebugEnabled) && $queryDebugEnabled) { $finalQueries = \App\Services\QueryDebugService::getAllQueriesAtRenderTime(); $finalSummary = \App\Services\QueryDebugService::getSummary(); $queriesByPurpose = \App\Services\QueryDebugService::getQueriesByPurpose(); } else { $finalQueries = []; $finalSummary = []; $queriesByPurpose = []; } @endphp @if(isset($queryDebugEnabled) && $queryDebugEnabled && !empty($finalQueries))

📊 SQL Queries Debug Panel

@if(config('query-debug.show_summary', true))
Query Summary: Total: {{ $finalSummary['total'] ?? 0 }} queries | Total Time: {{ $finalSummary['total_time'] ?? 0 }}ms | Avg Time: {{ $finalSummary['avg_time'] ?? 0 }}ms
@endif @if(!empty($queriesByPurpose))
📋 Queries by Purpose / Section:
@foreach($queriesByPurpose as $purposeGroup)
{{ $purposeGroup['purpose'] }}
Count: {{ $purposeGroup['count'] }}
Total Time: {{ $purposeGroup['total_time'] }}ms
Avg Time: {{ $purposeGroup['avg_time'] }}ms
% of Total: {{ $purposeGroup['percentage'] }}%
@endforeach
💡 Tip: This shows which sections/components are generating the most queries. Focus optimization efforts on sections with high query counts or execution times.
@endif @if(isset($queryDebugPageInfo) && !empty($queryDebugPageInfo))
📍 Page Information (Where query=1 is being used):
Current URL: {{ $queryDebugPageInfo['url'] ?? 'N/A' }} Path: {{ $queryDebugPageInfo['path'] ?? 'N/A' }} Route Name: {{ $queryDebugPageInfo['route_name'] ?? 'N/A' }} Route URI: {{ $queryDebugPageInfo['route_uri'] ?? 'N/A' }} HTTP Method: {{ $queryDebugPageInfo['method'] ?? 'N/A' }} @if(!empty($queryDebugPageInfo['controller'])) Controller: {{ $queryDebugPageInfo['controller'] }} @endif @if(!empty($queryDebugPageInfo['referrer'])) Referrer: {{ $queryDebugPageInfo['referrer'] }} @endif Timestamp: {{ $queryDebugPageInfo['timestamp'] ?? 'N/A' }}
@endif
â„šī¸ Info: Query debugging is enabled via ?query=1 parameter. | Hide Queries
âš ī¸ Note: Livewire component queries (lazy-loaded widgets) may execute separately via AJAX and won't appear here. This panel shows queries from the initial server-side page render.
@foreach($finalQueries as $query)
Query #{{ $query['index'] }} âąī¸ {{ $query['time'] }}ms @if(!empty($query['source']['summary'])) 📍 {{ $query['source']['summary'] }} @endif ({{ strlen($query['raw_sql']) }} chars)
@if(!empty($query['source']))
📍 Query Source / Purpose:
@if(!empty($query['source']['section'])) Section: {{ $query['source']['section'] }} @endif @if(!empty($query['source']['component'])) Component: {{ $query['source']['component'] }} @endif @if(!empty($query['source']['controller'])) Controller: {{ $query['source']['controller'] }} @endif @if(!empty($query['source']['method'])) Method: {{ $query['source']['method'] }}() @endif @if(!empty($query['source']['class'])) Class: {{ $query['source']['class'] }} @endif @if(!empty($query['source']['file'])) File: {{ $query['source']['file'] }}@if(!empty($query['source']['line'])):{{ $query['source']['line'] }}@endif @endif
@endif
{{ $query['sql'] }}
@if(!empty($query['bindings']))
Bindings: {{ json_encode($query['bindings'], JSON_PRETTY_PRINT) }}
@endif
@endforeach
@elseif(isset($queryDebugEnabled) && $queryDebugEnabled && empty($queryDebugQueries))
No queries logged. This might be because:
@endif