detail.php 1.49 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
<?php
use yii\helpers\Html;
use yii\grid\GridView;
?>
<h1>Database Queries</h1>

<?php

echo GridView::widget([
	'dataProvider' => $dataProvider,
	'id' => 'db-panel-detailed-grid',
12
	'options' => ['class' => 'detail-grid-view'],
13 14 15 16
	'filterModel' => $searchModel,
	'filterUrl' => $panel->getUrl(),
	'columns' => [
		['class' => 'yii\grid\SerialColumn'],
17 18 19 20 21 22 23 24
		[
			'attribute' => 'seq',
			'label' => 'Time',
			'value' => function ($data) {
				$timeInSeconds = $data['timestamp'] / 1000;
				$millisecondsDiff = (int)(($timeInSeconds - (int)$timeInSeconds) * 1000);
				return date('H:i:s.', $timeInSeconds) . sprintf('%03d', $millisecondsDiff);
			},
25 26 27
			'headerOptions' => [
				'class' => 'sort-numerical'
			]
28
		],
29 30
		[
			'attribute' => 'duration',
Mark committed
31
			'value' => function ($data) {
32
				return sprintf('%.1f ms', $data['duration']);
33
			},
34 35 36
			'options' => [
				'width' => '10%',
			],
37 38 39
			'headerOptions' => [
				'class' => 'sort-numerical'
			]
40 41 42
		],
		[
			'attribute' => 'type',
Mark committed
43
			'value' => function ($data) {
44
				return Html::encode(mb_strtoupper($data['type'], 'utf8'));
45 46 47 48
			},
		],
		[
			'attribute' => 'query',
Mark committed
49
			'value' => function ($data) {
50 51 52 53 54 55
				$query = Html::encode($data['query']);

				if (!empty($data['trace'])) {
					$query .= Html::ul($data['trace'], [
						'class' => 'trace',
						'item' => function ($trace) {
Mark committed
56
							return "<li>{$trace['file']} ({$trace['line']})</li>";
57 58 59 60 61 62 63
						},
					]);
				}
				return $query;
			},
			'format' => 'html',
			'options' => [
64
				'width' => '60%',
65 66 67 68
			],
		]
	],
]);
69
?>