Class yii\debug\models\search\Db

Inheritanceyii\debug\models\search\Db » yii\debug\models\search\Base » yii\base\Model
Available since extension's version2.0
Source Code https://github.com/yiisoft/yii2-debug/blob/master/src/models/search/Db.php

Search model for current request database queries.

Public Properties

Hide inherited properties

Property Type Description Defined By
$query integer Query attribute input search value yii\debug\models\search\Db
$type string Type of the input search value yii\debug\models\search\Db

Public Methods

Hide inherited methods

Method Description Defined By
addCondition() Adds filtering condition for a given attribute yii\debug\models\search\Base
attributeLabels() yii\debug\models\search\Db
rules() yii\debug\models\search\Db
search() Returns data provider with filled models. Filter applied if needed. yii\debug\models\search\Db

Property Details

Hide inherited properties

$query public property

Query attribute input search value

public integer $query null
$type public property

Type of the input search value

public string $type null

Method Details

Hide inherited methods

addCondition() public method

Defined in: yii\debug\models\search\Base::addCondition()

Adds filtering condition for a given attribute

public void addCondition ( yii\debug\components\search\Filter $filter, $attribute, $partial false )
$filter yii\debug\components\search\Filter

Filter instance

$attribute string

Attribute to filter

$partial boolean

If partial match should be used

                public function addCondition(Filter $filter, $attribute, $partial = false)
{
    $value = (string)$this->$attribute;
    if (mb_strpos($value, '>') !== false) {
        $value = (int)str_replace('>', '', $value);
        $filter->addMatcher($attribute, new matchers\GreaterThan(['value' => $value]));
    } elseif (mb_strpos($value, '<') !== false) {
        $value = (int)str_replace('<', '', $value);
        $filter->addMatcher($attribute, new matchers\LowerThan(['value' => $value]));
    } else {
        $filter->addMatcher($attribute, new matchers\SameAs(['value' => $value, 'partial' => $partial]));
    }
}

            
attributeLabels() public method

public void attributeLabels ( )

                public function attributeLabels()
{
    return [
        'type' => 'Type',
        'query' => 'Query',
    ];
}

            
rules() public method

public void rules ( )

                public function rules()
{
    return [
        [['type', 'query'], 'safe'],
    ];
}

            
search() public method

Returns data provider with filled models. Filter applied if needed.

public \yii\data\ArrayDataProvider search ( $models )
$models array

Data to return provider for

                public function search($models)
{
    $dataProvider = new ArrayDataProvider([
        'allModels' => $models,
        'pagination' => false,
        'sort' => [
            'attributes' => ['duration', 'seq', 'type', 'query', 'duplicate'],
        ],
    ]);
    if (!$this->validate()) {
        return $dataProvider;
    }
    $filter = new Filter();
    $this->addCondition($filter, 'type', true);
    $this->addCondition($filter, 'query', true);
    $dataProvider->allModels = $filter->filter($models);
    return $dataProvider;
}