PHP 클래스 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.
파일 보기
프로젝트 열기: yiisoft/yii2-sphinx
1 사용 예제들
공개 메소드들
보호된 메소드들
메소드 상세
Returns results of the specified facet.
prepareTotalCount()
보호된 메소드