PHP Class yii\sphinx\ActiveDataProvider
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:
php
$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 [[Query::showMeta]] is set ActiveDataProvider will fetch total count value from the query meta information,
avoiding extra counting query:
php
$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 [[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.
Afficher le fichier
Open project: yiisoft/yii2-sphinx
Class Usage Examples
Méthodes publiques
Méthodes protégées
Method Details
getFacet()
public méthode
Returns results of the specified facet.
getFacets()
public méthode
prepareModels()
protected méthode
prepareTotalCount()
protected méthode
setFacets()
public méthode