# ActiveDataFilter

> ActiveDataFilter allows composing a filtering condition in a format suitable for yii\db\QueryInterface::where().

[API reference](/docs/api/index.md) › [yii](/docs/api/yii/index.md) › [data](/docs/api/yii/data/index.md) › ActiveDataFilter

| class | `yii\data\ActiveDataFilter` |
| --- | --- |
| Extends | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) » [`yii\base\Model`](/docs/api/yii/base/model/index.md) » [`yii\base\Component`](/docs/api/yii/base/component/index.md) » [`yii\base\BaseObject`](/docs/api/yii/base/baseobject/index.md) |
| Implements | [`yii\base\StaticInstanceInterface`](/docs/api/yii/base/staticinstanceinterface/index.md), [`IteratorAggregate`](https://www.php.net/manual/en/class.iteratoraggregate.php), [`ArrayAccess`](https://www.php.net/manual/en/class.arrayaccess.php), [`yii\base\Arrayable`](/docs/api/yii/base/arrayable/index.md), [`yii\base\Configurable`](/docs/api/yii/base/configurable/index.md) |
| Uses traits | [`yii\base\ArrayableTrait`](/docs/api/yii/base/arrayabletrait/index.md), [`yii\base\StaticInstanceTrait`](/docs/api/yii/base/staticinstancetrait/index.md) |
| Since | 2.0.13 |
| Source | [`framework/data/ActiveDataFilter.php`](https://github.com/yiisoft/yii2/blob/22.0/framework/data/ActiveDataFilter.php#L19) |

ActiveDataFilter allows composing a filtering condition in a format suitable for [`QueryInterface::where()`](/docs/api/yii/db/queryinterface/index.md#method-where).

See also: [`DataFilter`](/docs/api/yii/data/datafilter/index.md).

## Properties

| Property | Type | Description | Defined by |
| --- | --- | --- | --- |
| <span id="property-activeValidators"></span>[`$activeValidators`](/docs/api/yii/base/model/index.md#property-activeValidators) read-only | [`yii\validators\Validator`](/docs/api/yii/validators/validator/index.md)`[]` | The validators applicable to the current [`$scenario`](/docs/api/yii/base/model/index.md#property-scenario). | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="property-attributeMap"></span>[`$attributeMap`](/docs/api/yii/data/datafilter/index.md#property-attributeMap) | `array` | Actual attribute names to be used in searched condition, in format: [filterAttribute => actualAttribute]. Default: `[]`. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="property-attributes"></span>[`$attributes`](/docs/api/yii/base/model/index.md#property-attributes) | `array<string, mixed>` | Attribute values (name => value). | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="property-behaviors"></span>[`$behaviors`](/docs/api/yii/base/component/index.md#property-behaviors) read-only | `array<`[`yii\base\Behavior`](/docs/api/yii/base/behavior/index.md)`<static>>` | List of behaviors attached to this component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| [`$conditionBuilders`](#property-conditionBuilders) | `array` | Maps filtering condition keywords to build methods. Default: `['AND' => 'buildConjunctionCondition', 'OR' => 'buildConjunctionCondition', 'NOT' => 'buildBlockCondition', '<' => 'buildOperatorCondition', '>' => 'buildOperatorCondition', '<=' => 'buildOperatorCondition', '>=' => 'buildOperatorCondition', '=' => 'buildOperatorCondition', '!=' => 'buildOperatorCondition', 'IN' => 'buildOperatorCondition', 'NOT IN' => 'buildOperatorCondition', 'LIKE' => 'buildOperatorCondition']`. | `ActiveDataFilter` |
| <span id="property-conditionValidators"></span>[`$conditionValidators`](/docs/api/yii/data/datafilter/index.md#property-conditionValidators) | `array` | Maps filter condition keywords to validation methods. Default: `['AND' => 'validateConjunctionCondition', 'OR' => 'validateConjunctionCondition', 'NOT' => 'validateBlockCondition', '<' => 'validateOperatorCondition', '>' => 'validateOperatorCondition', '<=' => 'validateOperatorCondition', '>=' => 'validateOperatorCondition', '=' => 'validateOperatorCondition', '!=' => 'validateOperatorCondition', 'IN' => 'validateOperatorCondition', 'NOT IN' => 'validateOperatorCondition', 'LIKE' => 'validateOperatorCondition']`. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="property-errorMessages"></span>[`$errorMessages`](/docs/api/yii/data/datafilter/index.md#property-errorMessages) | `array\|`[`Closure`](https://www.php.net/manual/en/class.closure.php) | Error messages in `[errorKey => message]` format, or a PHP callback returning them. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="property-errors"></span>[`$errors`](/docs/api/yii/base/model/index.md#property-errors) read-only | `array<string, string[]>` | Errors for all attributes. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="property-filter"></span>[`$filter`](/docs/api/yii/data/datafilter/index.md#property-filter) | `mixed` | Raw filter value. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="property-filterAttributeLabel"></span>[`$filterAttributeLabel`](/docs/api/yii/data/datafilter/index.md#property-filterAttributeLabel) | `string` | Label for the filter attribute specified via [`$filterAttributeName`](/docs/api/yii/data/datafilter/index.md#property-filterAttributeName). Default: `null`. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="property-filterAttributeName"></span>[`$filterAttributeName`](/docs/api/yii/data/datafilter/index.md#property-filterAttributeName) | `string` | Name of the attribute that handles filter value. Default: `'filter'`. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="property-filterControls"></span>[`$filterControls`](/docs/api/yii/data/datafilter/index.md#property-filterControls) | `array` | Keywords or expressions that could be used in a filter. Default: `['and' => 'AND', 'or' => 'OR', 'not' => 'NOT', 'lt' => '<', 'gt' => '>', 'lte' => '<=', 'gte' => '>=', 'eq' => '=', 'neq' => '!=', 'in' => 'IN', 'nin' => 'NOT IN', 'like' => 'LIKE']`. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="property-firstErrors"></span>[`$firstErrors`](/docs/api/yii/base/model/index.md#property-firstErrors) read-only | `array<string, string>` | The first errors. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="property-iterator"></span>[`$iterator`](/docs/api/yii/base/model/index.md#property-iterator) read-only | [`ArrayIterator`](https://www.php.net/manual/en/class.arrayiterator.php)`<string, mixed>` | An iterator for traversing the items in the list. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="property-multiValueOperators"></span>[`$multiValueOperators`](/docs/api/yii/data/datafilter/index.md#property-multiValueOperators) | `array` | List of operators keywords, which should accept multiple values. Default: `['IN', 'NOT IN']`. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="property-nullValue"></span>[`$nullValue`](/docs/api/yii/data/datafilter/index.md#property-nullValue) | `string` | Representation of `null` instead of literal `null` in case the latter cannot be used. Default: `'NULL'`. Available since 2.0.40. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="property-operatorTypes"></span>[`$operatorTypes`](/docs/api/yii/data/datafilter/index.md#property-operatorTypes) | `array` | Specifies the list of supported search attribute types per each operator. Default: `['<' => [self::TYPE_INTEGER, self::TYPE_FLOAT, self::TYPE_DATETIME, self::TYPE_DATE, self::TYPE_TIME], '>' => [self::TYPE_INTEGER, self::TYPE_FLOAT, self::TYPE_DATETIME, self::TYPE_DATE, self::TYPE_TIME], '<=' => [self::TYPE_INTEGER, self::TYPE_FLOAT, self::TYPE_DATETIME, self::TYPE_DATE, self::TYPE_TIME], '>=' => [self::TYPE_INTEGER, self::TYPE_FLOAT, self::TYPE_DATETIME, self::TYPE_DATE, self::TYPE_TIME], '=' => '*', '!=' => '*', 'IN' => '*', 'NOT IN' => '*', 'LIKE' => [self::TYPE_STRING]]`. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| [`$queryOperatorMap`](#property-queryOperatorMap) | `array` | Map filtering operators to operators used in [`QueryInterface::where()`](/docs/api/yii/db/queryinterface/index.md#method-where). Default: `[]`. | `ActiveDataFilter` |
| <span id="property-scenario"></span>[`$scenario`](/docs/api/yii/base/model/index.md#property-scenario) | `string` | The scenario that this model is in. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="property-searchAttributeTypes"></span>[`$searchAttributeTypes`](/docs/api/yii/data/datafilter/index.md#property-searchAttributeTypes) | `array\|null` | Search attribute type map. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="property-searchModel"></span>[`$searchModel`](/docs/api/yii/data/datafilter/index.md#property-searchModel) | [`yii\base\Model`](/docs/api/yii/base/model/index.md)`\|array\|string\|callable` | Model instance or its DI compatible configuration. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="property-validators"></span>[`$validators`](/docs/api/yii/base/model/index.md#property-validators) read-only | [`ArrayObject`](https://www.php.net/manual/en/class.arrayobject.php)`<int,` [`yii\validators\Validator`](/docs/api/yii/validators/validator/index.md)`>\|`[`yii\validators\Validator`](/docs/api/yii/validators/validator/index.md)`[]` | All the validators declared in the model. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |

## Methods

| Method | Description | Defined by |
| --- | --- | --- |
| <span id="method-__construct"></span>[`__construct()`](/docs/api/yii/base/baseobject/index.md#method-__construct) | Constructor. | [`yii\base\BaseObject`](/docs/api/yii/base/baseobject/index.md) |
| <span id="method-__call"></span>[`__call()`](/docs/api/yii/base/component/index.md#method-__call) | Calls the named method which is not a class method. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-__clone"></span>[`__clone()`](/docs/api/yii/base/model/index.md#method-__clone) | This method is called after the object is created by cloning an existing one. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-__get"></span>[`__get()`](/docs/api/yii/data/datafilter/index.md#method-__get) | Returns the value of a component property. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-__isset"></span>[`__isset()`](/docs/api/yii/data/datafilter/index.md#method-__isset) | Checks if a property is set, i.e. defined and not null. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-__set"></span>[`__set()`](/docs/api/yii/data/datafilter/index.md#method-__set) | Sets the value of a component property. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-__unset"></span>[`__unset()`](/docs/api/yii/data/datafilter/index.md#method-__unset) | Sets a component property to be null. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-activeAttributes"></span>[`activeAttributes()`](/docs/api/yii/base/model/index.md#method-activeAttributes) | Returns the attribute names that are subject to validation in the current scenario. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-addError"></span>[`addError()`](/docs/api/yii/base/model/index.md#method-addError) | Adds a new error to the specified attribute. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-addErrors"></span>[`addErrors()`](/docs/api/yii/base/model/index.md#method-addErrors) | Adds a list of errors. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-afterValidate"></span>[`afterValidate()`](/docs/api/yii/base/model/index.md#method-afterValidate) | This method is invoked after validation ends. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-attachBehavior"></span>[`attachBehavior()`](/docs/api/yii/base/component/index.md#method-attachBehavior) | Attaches a behavior to this component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-attachBehaviors"></span>[`attachBehaviors()`](/docs/api/yii/base/component/index.md#method-attachBehaviors) | Attaches a list of behaviors to the component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-attributeHints"></span>[`attributeHints()`](/docs/api/yii/base/model/index.md#method-attributeHints) | Returns the attribute hints. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-attributeLabels"></span>[`attributeLabels()`](/docs/api/yii/data/datafilter/index.md#method-attributeLabels) | Returns the attribute labels. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-attributes"></span>[`attributes()`](/docs/api/yii/data/datafilter/index.md#method-attributes) | Returns the list of attribute names. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-beforeValidate"></span>[`beforeValidate()`](/docs/api/yii/base/model/index.md#method-beforeValidate) | This method is invoked before validation starts. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-behaviors"></span>[`behaviors()`](/docs/api/yii/base/component/index.md#method-behaviors) | Returns a list of behaviors that this component should behave as. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-build"></span>[`build()`](/docs/api/yii/data/datafilter/index.md#method-build) | Builds actual filter specification form [`$filter`](/docs/api/yii/data/datafilter/index.md#property-filter) value. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-canGetProperty"></span>[`canGetProperty()`](/docs/api/yii/data/datafilter/index.md#method-canGetProperty) | Returns a value indicating whether a property can be read. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-canSetProperty"></span>[`canSetProperty()`](/docs/api/yii/data/datafilter/index.md#method-canSetProperty) | Returns a value indicating whether a property can be set. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-className"></span>[`className()`](/docs/api/yii/base/baseobject/index.md#method-className) static | Returns the fully qualified name of this class. | [`yii\base\BaseObject`](/docs/api/yii/base/baseobject/index.md) |
| <span id="method-clearErrors"></span>[`clearErrors()`](/docs/api/yii/base/model/index.md#method-clearErrors) | Removes errors for all attributes or a single attribute. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-createValidators"></span>[`createValidators()`](/docs/api/yii/base/model/index.md#method-createValidators) | Creates validator objects based on the validation rules specified in [`rules()`](/docs/api/yii/base/model/index.md#method-rules). | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-detachBehavior"></span>[`detachBehavior()`](/docs/api/yii/base/component/index.md#method-detachBehavior) | Detaches a behavior from the component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-detachBehaviors"></span>[`detachBehaviors()`](/docs/api/yii/base/component/index.md#method-detachBehaviors) | Detaches all behaviors from the component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-ensureBehaviors"></span>[`ensureBehaviors()`](/docs/api/yii/base/component/index.md#method-ensureBehaviors) | Makes sure that the behaviors declared in [`behaviors()`](/docs/api/yii/base/component/index.md#method-behaviors) are attached to this component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-extraFields"></span>[`extraFields()`](/docs/api/yii/base/arrayabletrait/index.md#method-extraFields) | Returns the list of fields that can be expanded further and returned by [`toArray()`](/docs/api/yii/base/arrayabletrait/index.md#method-toArray). | [`yii\base\ArrayableTrait`](/docs/api/yii/base/arrayabletrait/index.md) |
| <span id="method-fields"></span>[`fields()`](/docs/api/yii/base/model/index.md#method-fields) | Returns the list of fields that should be returned by default by [`toArray()`](/docs/api/yii/base/arrayabletrait/index.md#method-toArray) when no specific fields are specified. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-formName"></span>[`formName()`](/docs/api/yii/data/datafilter/index.md#method-formName) | Returns the form name that this model class should use. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-generateAttributeLabel"></span>[`generateAttributeLabel()`](/docs/api/yii/base/model/index.md#method-generateAttributeLabel) | Generates a user friendly attribute label based on the give attribute name. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-getActiveValidators"></span>[`getActiveValidators()`](/docs/api/yii/base/model/index.md#method-getActiveValidators) | Returns the validators applicable to the current [`$scenario`](/docs/api/yii/base/model/index.md#property-scenario). | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-getAttributeHint"></span>[`getAttributeHint()`](/docs/api/yii/base/model/index.md#method-getAttributeHint) | Returns the text hint for the specified attribute. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-getAttributeLabel"></span>[`getAttributeLabel()`](/docs/api/yii/base/model/index.md#method-getAttributeLabel) | Returns the text label for the specified attribute. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-getAttributes"></span>[`getAttributes()`](/docs/api/yii/base/model/index.md#method-getAttributes) | Returns attribute values. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-getBehavior"></span>[`getBehavior()`](/docs/api/yii/base/component/index.md#method-getBehavior) | Returns the named behavior object. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-getBehaviors"></span>[`getBehaviors()`](/docs/api/yii/base/component/index.md#method-getBehaviors) | Returns all behaviors attached to this component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-getErrorMessages"></span>[`getErrorMessages()`](/docs/api/yii/data/datafilter/index.md#method-getErrorMessages) |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-getErrors"></span>[`getErrors()`](/docs/api/yii/base/model/index.md#method-getErrors) | Returns the errors for all attributes or a single attribute. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-getErrorSummary"></span>[`getErrorSummary()`](/docs/api/yii/base/model/index.md#method-getErrorSummary) | Returns the errors for all attributes as a one-dimensional array. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-getFilter"></span>[`getFilter()`](/docs/api/yii/data/datafilter/index.md#method-getFilter) |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-getFirstError"></span>[`getFirstError()`](/docs/api/yii/base/model/index.md#method-getFirstError) | Returns the first error of the specified attribute. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-getFirstErrors"></span>[`getFirstErrors()`](/docs/api/yii/base/model/index.md#method-getFirstErrors) | Returns the first error of every attribute in the model. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-getIterator"></span>[`getIterator()`](/docs/api/yii/base/model/index.md#method-getIterator) | Returns an iterator for traversing the attributes in the model. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-getScenario"></span>[`getScenario()`](/docs/api/yii/base/model/index.md#method-getScenario) | Returns the scenario that this model is used in. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-getSearchAttributeTypes"></span>[`getSearchAttributeTypes()`](/docs/api/yii/data/datafilter/index.md#method-getSearchAttributeTypes) |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-getSearchModel"></span>[`getSearchModel()`](/docs/api/yii/data/datafilter/index.md#method-getSearchModel) |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-getValidators"></span>[`getValidators()`](/docs/api/yii/base/model/index.md#method-getValidators) | Returns all the validators declared in [`rules()`](/docs/api/yii/base/model/index.md#method-rules). | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-hasErrors"></span>[`hasErrors()`](/docs/api/yii/base/model/index.md#method-hasErrors) | Returns a value indicating whether there is any validation error. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-hasEventHandlers"></span>[`hasEventHandlers()`](/docs/api/yii/base/component/index.md#method-hasEventHandlers) | Returns a value indicating whether there is any handler attached to the named event. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-hasMethod"></span>[`hasMethod()`](/docs/api/yii/base/component/index.md#method-hasMethod) | Returns a value indicating whether a method is defined. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-hasProperty"></span>[`hasProperty()`](/docs/api/yii/base/component/index.md#method-hasProperty) | Returns a value indicating whether a property is defined for this component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-init"></span>[`init()`](/docs/api/yii/base/baseobject/index.md#method-init) | Initializes the object. | [`yii\base\BaseObject`](/docs/api/yii/base/baseobject/index.md) |
| <span id="method-instance"></span>[`instance()`](/docs/api/yii/base/staticinstancetrait/index.md#method-instance) static | Returns static class instance, which can be used to obtain meta information. | [`yii\base\StaticInstanceTrait`](/docs/api/yii/base/staticinstancetrait/index.md) |
| <span id="method-isAttributeActive"></span>[`isAttributeActive()`](/docs/api/yii/base/model/index.md#method-isAttributeActive) | Returns a value indicating whether the attribute is active in the current scenario. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-isAttributeRequired"></span>[`isAttributeRequired()`](/docs/api/yii/base/model/index.md#method-isAttributeRequired) | Returns a value indicating whether the attribute is required. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-isAttributeSafe"></span>[`isAttributeSafe()`](/docs/api/yii/base/model/index.md#method-isAttributeSafe) | Returns a value indicating whether the attribute is safe for massive assignments. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-load"></span>[`load()`](/docs/api/yii/base/model/index.md#method-load) | Populates the model with input data. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-loadMultiple"></span>[`loadMultiple()`](/docs/api/yii/base/model/index.md#method-loadMultiple) static | Populates a set of models with the data from end user. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-normalize"></span>[`normalize()`](/docs/api/yii/data/datafilter/index.md#method-normalize) | Normalizes filter value, replacing raw keys according to [`$filterControls`](/docs/api/yii/data/datafilter/index.md#property-filterControls) and [`$attributeMap`](/docs/api/yii/data/datafilter/index.md#property-attributeMap). | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-off"></span>[`off()`](/docs/api/yii/base/component/index.md#method-off) | Detaches an existing event handler from this component. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-offsetExists"></span>[`offsetExists()`](/docs/api/yii/base/model/index.md#method-offsetExists) | Returns whether there is an element at the specified offset. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-offsetGet"></span>[`offsetGet()`](/docs/api/yii/base/model/index.md#method-offsetGet) | Returns the element at the specified offset. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-offsetSet"></span>[`offsetSet()`](/docs/api/yii/base/model/index.md#method-offsetSet) | Sets the element at the specified offset. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-offsetUnset"></span>[`offsetUnset()`](/docs/api/yii/base/model/index.md#method-offsetUnset) | Sets the element value at the specified offset to null. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-on"></span>[`on()`](/docs/api/yii/base/component/index.md#method-on) | Attaches an event handler to an event. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-onUnsafeAttribute"></span>[`onUnsafeAttribute()`](/docs/api/yii/base/model/index.md#method-onUnsafeAttribute) | This method is invoked when an unsafe attribute is being massively assigned. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-rules"></span>[`rules()`](/docs/api/yii/data/datafilter/index.md#method-rules) | Returns the validation rules for attributes. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-safeAttributes"></span>[`safeAttributes()`](/docs/api/yii/base/model/index.md#method-safeAttributes) | Returns the attribute names that are safe to be massively assigned in the current scenario. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-scenarios"></span>[`scenarios()`](/docs/api/yii/base/model/index.md#method-scenarios) | Returns a list of scenarios and the corresponding active attributes. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-setAttributes"></span>[`setAttributes()`](/docs/api/yii/base/model/index.md#method-setAttributes) | Sets the attribute values in a massive way. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-setErrorMessages"></span>[`setErrorMessages()`](/docs/api/yii/data/datafilter/index.md#method-setErrorMessages) | Sets the list of error messages responding to invalid filter structure, in format: `[errorKey => message]`. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-setFilter"></span>[`setFilter()`](/docs/api/yii/data/datafilter/index.md#method-setFilter) |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-setScenario"></span>[`setScenario()`](/docs/api/yii/base/model/index.md#method-setScenario) | Sets the scenario for the model. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-setSearchAttributeTypes"></span>[`setSearchAttributeTypes()`](/docs/api/yii/data/datafilter/index.md#method-setSearchAttributeTypes) |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-setSearchModel"></span>[`setSearchModel()`](/docs/api/yii/data/datafilter/index.md#method-setSearchModel) |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-toArray"></span>[`toArray()`](/docs/api/yii/base/arrayabletrait/index.md#method-toArray) | Converts the model into an array. | [`yii\base\ArrayableTrait`](/docs/api/yii/base/arrayabletrait/index.md) |
| <span id="method-trigger"></span>[`trigger()`](/docs/api/yii/base/component/index.md#method-trigger) | Triggers an event. | [`yii\base\Component`](/docs/api/yii/base/component/index.md) |
| <span id="method-validate"></span>[`validate()`](/docs/api/yii/base/model/index.md#method-validate) | Performs the data validation. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="method-validateFilter"></span>[`validateFilter()`](/docs/api/yii/data/datafilter/index.md#method-validateFilter) | Validates filter attribute value to match filer condition specification. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-validateMultiple"></span>[`validateMultiple()`](/docs/api/yii/base/model/index.md#method-validateMultiple) static | Validates multiple models. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| [`buildAttributeCondition()`](#method-buildAttributeCondition) protected | Builds search condition for a particular attribute. | `ActiveDataFilter` |
| [`buildBlockCondition()`](#method-buildBlockCondition) protected | Builds block condition, which consists of a single condition. | `ActiveDataFilter` |
| [`buildCondition()`](#method-buildCondition) protected |  | `ActiveDataFilter` |
| [`buildConjunctionCondition()`](#method-buildConjunctionCondition) protected | Builds conjunction condition, which consists of multiple independent ones. | `ActiveDataFilter` |
| [`buildInternal()`](#method-buildInternal) protected | Performs actual filter build. | `ActiveDataFilter` |
| [`buildOperatorCondition()`](#method-buildOperatorCondition) protected | Builds an operator condition. | `ActiveDataFilter` |
| <span id="method-defaultErrorMessages"></span>[`defaultErrorMessages()`](/docs/api/yii/data/datafilter/index.md#method-defaultErrorMessages) protected | Returns default values for [`$errorMessages`](/docs/api/yii/data/datafilter/index.md#property-errorMessages). | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-detectSearchAttributeType"></span>[`detectSearchAttributeType()`](/docs/api/yii/data/datafilter/index.md#method-detectSearchAttributeType) protected | Detect attribute type from given validator. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-detectSearchAttributeTypes"></span>[`detectSearchAttributeTypes()`](/docs/api/yii/data/datafilter/index.md#method-detectSearchAttributeTypes) protected | Composes default value for [`$searchAttributeTypes`](/docs/api/yii/data/datafilter/index.md#property-searchAttributeTypes) from the [`$searchModel`](/docs/api/yii/data/datafilter/index.md#property-searchModel) validation rules. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-extractFieldsFor"></span>[`extractFieldsFor()`](/docs/api/yii/base/arrayabletrait/index.md#method-extractFieldsFor) protected | Extract nested fields from a fields collection for a given root field Nested fields are separated with dots (.). e.g: "item.id" The previous example would extract "id". | [`yii\base\ArrayableTrait`](/docs/api/yii/base/arrayabletrait/index.md) |
| <span id="method-extractRootFields"></span>[`extractRootFields()`](/docs/api/yii/base/arrayabletrait/index.md#method-extractRootFields) protected | Extracts the root field names from nested fields. | [`yii\base\ArrayableTrait`](/docs/api/yii/base/arrayabletrait/index.md) |
| <span id="method-filterAttributeValue"></span>[`filterAttributeValue()`](/docs/api/yii/data/datafilter/index.md#method-filterAttributeValue) protected | Validates attribute value in the scope of [`$searchModel`](/docs/api/yii/data/datafilter/index.md#property-searchModel), applying attribute value filters if any. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-parseErrorMessage"></span>[`parseErrorMessage()`](/docs/api/yii/data/datafilter/index.md#method-parseErrorMessage) protected | Parses content of the message from [`$errorMessages`](/docs/api/yii/data/datafilter/index.md#property-errorMessages), specified by message key. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-resolveFields"></span>[`resolveFields()`](/docs/api/yii/base/arrayabletrait/index.md#method-resolveFields) protected | Determines which fields can be returned by [`toArray()`](/docs/api/yii/base/arrayabletrait/index.md#method-toArray). | [`yii\base\ArrayableTrait`](/docs/api/yii/base/arrayabletrait/index.md) |
| <span id="method-validateAttributeCondition"></span>[`validateAttributeCondition()`](/docs/api/yii/data/datafilter/index.md#method-validateAttributeCondition) protected | Validates search condition for a particular attribute. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-validateAttributeValue"></span>[`validateAttributeValue()`](/docs/api/yii/data/datafilter/index.md#method-validateAttributeValue) protected | Validates attribute value in the scope of [`Model`](/docs/api/yii/base/model/index.md). | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-validateBlockCondition"></span>[`validateBlockCondition()`](/docs/api/yii/data/datafilter/index.md#method-validateBlockCondition) protected | Validates block condition that consists of a single condition. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-validateCondition"></span>[`validateCondition()`](/docs/api/yii/data/datafilter/index.md#method-validateCondition) protected | Validates filter condition. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-validateConjunctionCondition"></span>[`validateConjunctionCondition()`](/docs/api/yii/data/datafilter/index.md#method-validateConjunctionCondition) protected | Validates conjunction condition that consists of multiple independent ones. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="method-validateOperatorCondition"></span>[`validateOperatorCondition()`](/docs/api/yii/data/datafilter/index.md#method-validateOperatorCondition) protected | Validates operator condition. | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |

## Events

| Event | Type | Description | Defined by |
| --- | --- | --- | --- |
| <span id="event-EVENT_BEFORE_VALIDATE"></span>[`EVENT_BEFORE_VALIDATE`](/docs/api/yii/base/model/index.md#event-EVENT_BEFORE_VALIDATE) | [`yii\base\ModelEvent`](/docs/api/yii/base/modelevent/index.md) | An event raised at the beginning of [`validate()`](/docs/api/yii/base/model/index.md#method-validate). Event name: `'beforeValidate'`. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |
| <span id="event-EVENT_AFTER_VALIDATE"></span>[`EVENT_AFTER_VALIDATE`](/docs/api/yii/base/model/index.md#event-EVENT_AFTER_VALIDATE) | [`yii\base\Event`](/docs/api/yii/base/event/index.md) | An event raised at the end of [`validate()`](/docs/api/yii/base/model/index.md#method-validate) Event name: `'afterValidate'`. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |

## Constants

| Constant | Value | Description | Defined by |
| --- | --- | --- | --- |
| <span id="const-TYPE_INTEGER"></span>[`TYPE_INTEGER`](/docs/api/yii/data/datafilter/index.md#const-TYPE_INTEGER) | `'integer'` |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="const-TYPE_FLOAT"></span>[`TYPE_FLOAT`](/docs/api/yii/data/datafilter/index.md#const-TYPE_FLOAT) | `'float'` |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="const-TYPE_BOOLEAN"></span>[`TYPE_BOOLEAN`](/docs/api/yii/data/datafilter/index.md#const-TYPE_BOOLEAN) | `'boolean'` |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="const-TYPE_STRING"></span>[`TYPE_STRING`](/docs/api/yii/data/datafilter/index.md#const-TYPE_STRING) | `'string'` |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="const-TYPE_ARRAY"></span>[`TYPE_ARRAY`](/docs/api/yii/data/datafilter/index.md#const-TYPE_ARRAY) | `'array'` |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="const-TYPE_DATETIME"></span>[`TYPE_DATETIME`](/docs/api/yii/data/datafilter/index.md#const-TYPE_DATETIME) | `'datetime'` |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="const-TYPE_DATE"></span>[`TYPE_DATE`](/docs/api/yii/data/datafilter/index.md#const-TYPE_DATE) | `'date'` |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="const-TYPE_TIME"></span>[`TYPE_TIME`](/docs/api/yii/data/datafilter/index.md#const-TYPE_TIME) | `'time'` |  | [`DataFilter`](/docs/api/yii/data/datafilter/index.md) |
| <span id="const-SCENARIO_DEFAULT"></span>[`SCENARIO_DEFAULT`](/docs/api/yii/base/model/index.md#const-SCENARIO_DEFAULT) | `'default'` | The name of the default scenario. | [`yii\base\Model`](/docs/api/yii/base/model/index.md) |

## Property details

### $conditionBuilders <span id="property-conditionBuilders"></span>

```php
public array $conditionBuilders = ['AND' => 'buildConjunctionCondition', 'OR' => 'buildConjunctionCondition', 'NOT' => 'buildBlockCondition', '<' => 'buildOperatorCondition', '>' => 'buildOperatorCondition', '<=' => 'buildOperatorCondition', '>=' => 'buildOperatorCondition', '=' => 'buildOperatorCondition', '!=' => 'buildOperatorCondition', 'IN' => 'buildOperatorCondition', 'NOT IN' => 'buildOperatorCondition', 'LIKE' => 'buildOperatorCondition']
```

Maps filtering condition keywords to build methods.

These methods are used by [`buildCondition()`](/docs/api/yii/data/activedatafilter/index.md#method-buildCondition) to build the actual filtering conditions.
Particular condition builder can be specified using a PHP callback. For example:

```
[
    'XOR' => function (string $operator, mixed $condition) {
        //return array;
    },
    'LIKE' => function (string $operator, mixed $condition, string $attribute) {
        //return array;
    },
]
```

### $queryOperatorMap <span id="property-queryOperatorMap"></span>

```php
public array $queryOperatorMap = []
```

Map filtering operators to operators used in [`QueryInterface::where()`](/docs/api/yii/db/queryinterface/index.md#method-where).

The format is: `[filterOperator => queryOperator]`.
If particular operator keyword does not appear in the map, it will be used as is.

Usually the map can be left empty as filter operator names are consistent with the ones
used in [`QueryInterface::where()`](/docs/api/yii/db/queryinterface/index.md#method-where). However, you may want to adjust it in some special cases.
For example, when using PostgreSQL you may want to setup the following map:

```
[
    'LIKE' => 'ILIKE'
]
```

## Method details

### buildAttributeCondition() <span id="method-buildAttributeCondition"></span>

```php
protected function buildAttributeCondition(string $attribute, mixed $condition): array
```

Builds search condition for a particular attribute.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$attribute` | `string` | Search attribute name. |
| `$condition` | `mixed` | Search condition. |

**Returns**

`array`: Actual condition.

### buildBlockCondition() <span id="method-buildBlockCondition"></span>

```php
protected function buildBlockCondition(string $operator, mixed $condition): array
```

Builds block condition, which consists of a single condition.

It covers such operators as `not`.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$operator` | `string` | Operator keyword. |
| `$condition` | `mixed` | Raw condition. |

**Returns**

`array`: Actual condition.

### buildCondition() <span id="method-buildCondition"></span>

```php
protected function buildCondition(array $condition): array
```

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$condition` | `array` |  |

**Returns**

`array`: Built condition.

### buildConjunctionCondition() <span id="method-buildConjunctionCondition"></span>

```php
protected function buildConjunctionCondition(string $operator, mixed $condition): array
```

Builds conjunction condition, which consists of multiple independent ones.

It covers such operators as `and` and `or`.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$operator` | `string` | Operator keyword. |
| `$condition` | `mixed` | Raw condition. |

**Returns**

`array`: Actual condition.

### buildInternal() <span id="method-buildInternal"></span>

```php
protected function buildInternal(): mixed
```

Performs actual filter build.

By default this method returns result of [`normalize()`](/docs/api/yii/data/datafilter/index.md#method-normalize).
The child class may override this method providing more specific implementation.

**Returns**

`mixed`: Built actual filter value.

### buildOperatorCondition() <span id="method-buildOperatorCondition"></span>

```php
protected function buildOperatorCondition(string $operator, mixed $condition, string $attribute): array
```

Builds an operator condition.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$operator` | `string` | Operator keyword. |
| `$condition` | `mixed` | Attribute condition. |
| `$attribute` | `string` | Attribute name. |

**Returns**

`array`: Actual condition.