'Tag', 'ip' => 'Ip', 'method' => 'Method', 'ajax' => 'Ajax', 'url' => 'url', 'statusCode' => 'Status code', 'sqlCount' => 'Total queries count', ]; } /** * Returns data provider with filled models. Filter applied if needed. * @param array $params * @param array $models * @return \yii\data\ArrayDataProvider */ public function search($params, $models) { $dataProvider = new ArrayDataProvider([ 'allModels' => $models, 'sort' => [ 'attributes' => ['method', 'ip', 'tag', 'time', 'statusCode', 'sqlCount'], ], 'pagination' => [ 'pageSize' => 10, ], ]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $filter = new Filter(); $this->addCondition($filter, 'tag', true); $this->addCondition($filter, 'ip', true); $this->addCondition($filter, 'method'); $this->addCondition($filter, 'ajax'); $this->addCondition($filter, 'url', true); $this->addCondition($filter, 'statusCode'); $this->addCondition($filter, 'sqlCount'); $dataProvider->allModels = $filter->filter($models); return $dataProvider; } /** * Checks if the code is critical: 400 or greater, 500 or greater. * @param integer $code * @return bool */ public function isCodeCritical($code) { return in_array($code, $this->criticalCodes); } }