Class yii\sphinx\ActiveDataProvider
| Inheritance | yii\sphinx\ActiveDataProvider » yii\data\ActiveDataProvider » yii\data\BaseDataProvider » yii\base\Component » yii\base\BaseObject | 
|---|---|
| Implements | yii\base\Configurable, yii\data\DataProviderInterface | 
| Available since version | 2.0.4 | 
| Source Code | https://github.com/yiisoft/yii2-sphinx/blob/master/ActiveDataProvider.php | 
ActiveDataProvider is an enhanced version of yii\data\ActiveDataProvider specific to the Sphinx.
It allows to fetch not only rows and total rows count, but also a meta information and facet results.
The following is an example of using ActiveDataProvider to provide facet results:
$provider = new ActiveDataProvider([
    'query' => Post::find()->facets(['author_id', 'category_id']),
    'pagination' => [
        'pageSize' => 20,
    ],
]);
// get the posts in the current page
$posts = $provider->getModels();
// get all facets
$facets = $provider->getFacets();
// get particular facet
$authorFacet = $provider->getFacet('author_id');
In case yii\sphinx\Query::showMeta() is set ActiveDataProvider will fetch total count value from the query meta information, avoiding extra counting query:
$provider = new ActiveDataProvider([
    'query' => Post::find()->showMeta(true),
    'pagination' => [
        'pageSize' => 20,
    ],
]);
$totalCount = $provider->getTotalCount(); // fetched from meta information
Note: when using 'meta' information results total count will be fetched after pagination limit applying,
which eliminates ability to verify if requested page number actually exist. Data provider disables yii\data\Pagination::validatePage
automatically in this case.
Note: because pagination offset and limit may exceed Sphinx 'max_matches' bounds, data provider will set 'max_matches' option automatically based on those values. However, if yii\sphinx\Query::showMeta() is set, such adjustment is not performed as it will break total count calculation, so you'll have to deal with 'max_matches' bounds on your own.
Public Properties
| Property | Type | Description | Defined By | 
|---|---|---|---|
| $db | yii\db\Connection|array|string | The DB connection object or the application component ID of the DB connection. | yii\data\ActiveDataProvider | 
| $id | string | An ID that uniquely identifies the data provider among all data providers. | yii\data\BaseDataProvider | 
| $key | string|callable | The column that is used as the key of the data models. | yii\data\ActiveDataProvider | 
| $query | yii\db\QueryInterface | The query that is used to fetch data models and \yii\data\totalCount if it is not explicitly set. | yii\data\ActiveDataProvider | 
Public Methods
| Method | Description | Defined By | 
|---|---|---|
| __call() | Calls the named method which is not a class method. | yii\base\Component | 
| __clone() | yii\data\ActiveDataProvider | |
| __construct() | Constructor. | yii\base\BaseObject | 
| __get() | Returns the value of a component property. | yii\base\Component | 
| __isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component | 
| __set() | Sets the value of a component property. | yii\base\Component | 
| __unset() | Sets a component property to be null. | yii\base\Component | 
| attachBehavior() | Attaches a behavior to this component. | yii\base\Component | 
| attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component | 
| behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component | 
| canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component | 
| canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component | 
| className() | Returns the fully qualified name of this class. | yii\base\BaseObject | 
| detachBehavior() | Detaches a behavior from the component. | yii\base\Component | 
| detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component | 
| ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component | 
| getBehavior() | Returns the named behavior object. | yii\base\Component | 
| getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component | 
| getCount() | Returns the number of data models in the current page. | yii\data\BaseDataProvider | 
| getFacet() | Returns results of the specified facet. | yii\sphinx\ActiveDataProvider | 
| getFacets() | yii\sphinx\ActiveDataProvider | |
| getKeys() | Returns the key values associated with the data models. | yii\data\BaseDataProvider | 
| getMeta() | yii\sphinx\ActiveDataProvider | |
| getModels() | Returns the data models in the current page. | yii\data\BaseDataProvider | 
| getPagination() | Returns the pagination object used by this data provider. | yii\data\BaseDataProvider | 
| getSort() | Returns the sorting object used by this data provider. | yii\data\BaseDataProvider | 
| getTotalCount() | Returns the total number of data models. | yii\data\BaseDataProvider | 
| hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component | 
| hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component | 
| hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component | 
| init() | Initializes the DB connection component. | yii\data\ActiveDataProvider | 
| off() | Detaches an existing event handler from this component. | yii\base\Component | 
| on() | Attaches an event handler to an event. | yii\base\Component | 
| prepare() | Prepares the data models and keys. | yii\data\BaseDataProvider | 
| refresh() | Refreshes the data provider. | yii\data\BaseDataProvider | 
| setFacets() | yii\sphinx\ActiveDataProvider | |
| setKeys() | Sets the key values associated with the data models. | yii\data\BaseDataProvider | 
| setMeta() | yii\sphinx\ActiveDataProvider | |
| setModels() | Sets the data models in the current page. | yii\data\BaseDataProvider | 
| setPagination() | Sets the pagination for this data provider. | yii\data\BaseDataProvider | 
| setSort() | {@inheritdoc} | yii\data\ActiveDataProvider | 
| setTotalCount() | Sets the total number of data models. | yii\data\BaseDataProvider | 
| trigger() | Triggers an event. | yii\base\Component | 
Protected Methods
| Method | Description | Defined By | 
|---|---|---|
| prepareKeys() | {@inheritdoc} | yii\data\ActiveDataProvider | 
| prepareModels() | {@inheritdoc} | yii\sphinx\ActiveDataProvider | 
| prepareTotalCount() | {@inheritdoc} | yii\sphinx\ActiveDataProvider | 
Method Details
Returns results of the specified facet.
| public array getFacet ( $name ) | ||
| $name | string | Facet name  | 
                
| return | array | Facet results.  | 
                
|---|---|---|
| throws | yii\base\InvalidCallException | if requested facet does not present in results.  | 
                
| public array getFacets ( ) | ||
| return | array | Query facet results.  | 
                
|---|---|---|
| public array getMeta ( ) | ||
| return | array | Search query meta info  | 
                
|---|---|---|
{@inheritdoc}
| protected void prepareModels ( ) | 
{@inheritdoc}
| protected void prepareTotalCount ( ) | 
| public void setFacets ( $facets ) | ||
| $facets | array | Query facet results.  | 
                
| public void setMeta ( $meta ) | ||
| $meta | array | Search query meta info  |