Класс yii\sphinx\ActiveDataProvider
| Наследование | yii\sphinx\ActiveDataProvider » yii\data\ActiveDataProvider » yii\data\BaseDataProvider » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\data\DataProviderInterface |
| Доступна с версии | 2.0.4 |
| Исходный код | https://github.com/yiisoft/yii2-sphinx/blob/master/ActiveDataProvider.php |
ActiveDataProvider — это расширенная версия yii\data\ActiveDataProvider, специфичная для Sphinx.
Она позволяет получать не только строки и общее количество строк, но также метаинформацию и результаты фасетной обработки.
Ниже приведен пример использования ActiveDataProvider для получения результатов фасетной обработки:
$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');
В случае, если свойство yii\sphinx\Query::showMeta() установлено, ActiveDataProvider будет получать значение общего количества из метаинформации запроса, избегая дополнительного запроса для подсчета:
$provider = new ActiveDataProvider([
'query' => Post::find()->showMeta(true),
'pagination' => [
'pageSize' => 20,
],
]);
$totalCount = $provider->getTotalCount(); // fetched from meta information
Примечание: при использовании метаинформации общее количество результатов будет получено после применения ограничения пагинации, что исключает возможность проверки существования запрошенной страницы. В этом случае провайдер данных автоматически отключает yii\data\Pagination::validatePage.
Примечание: так как смещение и ограничение пагинации могут превысить предел `max_matches` Sphinx, провайдер данных автоматически установит значение `max_matches` на основе этих значений. Однако, если свойство yii\sphinx\Query::showMeta() установлено, такая настройка не выполняется, так как это нарушит вычисление общего количества, поэтому вам необходимо самостоятельно обрабатывать пределы `max_matches`.
Публичные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| $behaviors | yii\base\Behavior[] | Список прикрепленных к этому компоненту поведений | yii\base\Component |
| $count | целое число | Количество моделей данных на текущей странице. | yii\data\BaseDataProvider |
| $db | yii\db\Connection|массив|строка | Объект подключения к базе данных или идентификатор компонента приложения подключения к базе данных. | yii\data\ActiveDataProvider |
| $facets | массив | Результаты фасетной обработки запроса. | yii\sphinx\ActiveDataProvider |
| $id | строка | Идентификатор, уникально определяющий провайдер данных среди всех провайдеров данных. | yii\data\BaseDataProvider |
| $key | строка|вызов | Столбец, используемый в качестве ключа моделей данных. | yii\data\ActiveDataProvider |
| $keys | массив | Список значений ключей, соответствующих $models. | yii\data\BaseDataProvider |
| $meta | массив | Метаинформация запроса поиска. | yii\sphinx\ActiveDataProvider |
| $models | массив | Список моделей данных на текущей странице. | yii\data\BaseDataProvider |
| $pagination | yii\data\Pagination|логическое значение | Объект пагинации. | yii\data\BaseDataProvider |
| $query | yii\db\QueryInterface | Запрос, используемый для получения моделей данных и $totalCount, если он не задан явно. | yii\data\ActiveDataProvider |
| $sort | yii\data\Sort|логическое значение | Объект сортировки. | yii\data\BaseDataProvider |
| $totalCount | целое число | Общее количество возможных моделей данных. | yii\data\BaseDataProvider |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путем клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| attachBehavior() | Присоединяет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| behaviors() | Возвращает список поведений, по которым должен вести себя этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все присоединенные к этому компоненту поведения. | yii\base\Component |
| getCount() | Возвращает количество моделей данных на текущей странице. | yii\data\BaseDataProvider |
| getFacet() | Возвращает результаты указанного фасета. | yii\sphinx\ActiveDataProvider |
| getFacets() | yii\sphinx\ActiveDataProvider | |
| getKeys() | Возвращает значения ключей, связанные с моделями данных. | yii\data\BaseDataProvider |
| getMeta() | yii\sphinx\ActiveDataProvider | |
| getModels() | Возвращает модели данных на текущей странице. | yii\data\BaseDataProvider |
| getPagination() | Возвращает объект постраничной навигации, используемый этим поставщиком данных. | yii\data\BaseDataProvider |
| getSort() | Возвращает объект сортировки, используемый этим поставщиком данных. | yii\data\BaseDataProvider |
| getTotalCount() | Возвращает общее количество моделей данных. | yii\data\BaseDataProvider |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, присоединенный к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует компонент подключения к базе данных. | yii\data\ActiveDataProvider |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| prepare() | Подготавливает модели данных и ключи. | yii\data\BaseDataProvider |
| refresh() | Обновляет поставщик данных. | yii\data\BaseDataProvider |
| setFacets() | yii\sphinx\ActiveDataProvider | |
| setKeys() | Устанавливает значения ключей, связанные с моделями данных. | yii\data\BaseDataProvider |
| setMeta() | yii\sphinx\ActiveDataProvider | |
| setModels() | Устанавливает модели данных на текущей странице. | yii\data\BaseDataProvider |
| setPagination() | Устанавливает постраничную навигацию для этого поставщика данных. | yii\data\BaseDataProvider |
| setSort() | Устанавливает определение сортировки для этого поставщика данных. | yii\data\ActiveDataProvider |
| setTotalCount() | Устанавливает общее количество моделей данных. | yii\data\BaseDataProvider |
| trigger() | Вызывает событие. | yii\base\Component |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| prepareKeys() | Подготавливает ключи, связанные с текущими доступными моделями данных. | yii\data\ActiveDataProvider |
| prepareModels() | Подготавливает модели данных, которые будут доступны на текущей странице. | yii\sphinx\ActiveDataProvider |
| prepareTotalCount() | Возвращает значение, указывающее общее количество моделей данных в этом поставщике данных. | yii\sphinx\ActiveDataProvider |
Подробное описание свойств
$facets общественное свойство
Результаты фасетного запроса.
public array getFacets ( )
public void setFacets ( $facets )
$meta общественное свойство
Метаинформация запроса поиска
public array getMeta ( )
public void setMeta ( $meta )
Подробное описание методов
getFacet() public method
Возвращает результаты указанного фасета.
| public array getFacet ( $name ) | ||
|---|---|---|
| $name | string |
Имя фасета |
| return | array |
Результаты фасета. |
| throws | yii\base\InvalidCallException |
если запрошенный фасет отсутствует в результатах. |
getFacets() public method
| public array getFacets ( ) | ||
|---|---|---|
| return | array |
Результаты фасетов запроса. |
getMeta() public method
| public array getMeta ( ) | ||
|---|---|---|
| return | array |
Метаинформация запроса. |
prepareModels() protected method
Подготавливает модели данных, которые будут доступны на текущей странице.
| protected array prepareModels ( ) | ||
|---|---|---|
| return | array |
Доступные модели данных |
prepareTotalCount() protected method
Возвращает значение, указывающее на общее количество моделей данных в этом поставщике данных.
| protected integer prepareTotalCount ( ) | ||
|---|---|---|
| return | integer |
Общее количество моделей данных в этом поставщике данных. |
setFacets() public method
| public void setFacets ( $facets ) | ||
|---|---|---|
| $facets | array |
Результаты фасетов запроса. |
setMeta() public method
| public void setMeta ( $meta ) | ||
|---|---|---|
| $meta | array |
Метаинформация запроса. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-sphinx-activedataprovider.html