Spec-Zone.ru › Yii 2.0

Класс yii\sphinx\ActiveQuery

Все классы | Свойства | Методы | События
Наследование yii\sphinx\ActiveQuery » yii\sphinx\Query » yii\db\Query » yii\base\Component » yii\base\Object
Реализует yii\base\Configurable, yii\db\ActiveQueryInterface, yii\db\QueryInterface
Использует Трейты yii\db\ActiveQueryTrait, yii\db\ActiveRelationTrait, yii\db\QueryTrait
Доступен с версии 2.0
Исходный код https://github.com/yiisoft/yii2-sphinx/blob/master/ActiveQuery.php

ActiveQuery представляет запрос Sphinx, связанный с классом Active Record.

  1. Обычный запрос
  2. Реляционный запрос

ActiveQuery может быть обычным запросом или использоваться в реляционном контексте.

Экземпляры ActiveQuery обычно создаются методами yii\sphinx\ActiveRecord::find() и yii\sphinx\ActiveRecord::findBySql(). Реляционные запросы создаются методами yii\sphinx\ActiveRecord::hasOne() и yii\sphinx\ActiveRecord::hasMany().

Обычный запрос

Поскольку ActiveQuery расширяет yii\sphinx\Query, можно использовать методы запроса, такие как where(), orderBy(), для настройки параметров запроса.

ActiveQuery также предоставляет следующие дополнительные параметры запроса:

  • with(): список отношений, с которыми должен выполняться этот запрос.
  • indexBy(): имя столбца, по которому должны индексироваться результаты запроса.
  • asArray(): следует ли возвращать каждую запись в виде массива.

Эти параметры могут быть настроены с помощью методов с таким же именем. Например:

$articles = Article::find()->with('source')->asArray()->all();

ActiveQuery позволяет создавать фрагменты кода, используя данные, предоставленные ActiveRecord. Для этого можно использовать метод snippetByModel(). Например:

class Article extends ActiveRecord
{
    public function getSource()
    {
        return $this->hasOne('db', ArticleDb::className(), ['id' => 'id']);
    }

    public function getSnippetSource()
    {
        return $this->source->content;
    }

    ...
}

$articles = Article::find()->with('source')->snippetByModel()->all();

Реляционный запрос

В реляционном контексте ActiveQuery представляет отношение между двумя классами Active Record.

Реляционные экземпляры ActiveQuery обычно создаются вызовом yii\sphinx\ActiveRecord::hasOne() и yii\sphinx\ActiveRecord::hasMany(). Класс Active Record объявляет отношение, определяя метод-геттер, который вызывает один из вышеперечисленных методов и возвращает созданный объект ActiveQuery.

Отношение задаётся свойством $link, которое представляет ассоциацию между столбцами различных таблиц; кратность отношения указывается свойством $multiple.

Если отношение включает промежуточную таблицу, оно может быть задано методом via(). Этот метод может быть вызван только в реляционном контексте. То же самое относится к методу inverseOf(), который помечает отношение как обратное к другому.

Общедоступные свойства

Свойство Тип Описание Определено в
$asArray boolean Возвращать ли каждую запись в виде массива. yii\db\ActiveQueryTrait
$behaviors yii\base\Behavior[] Список присоединённых к этому компоненту поведений. yii\base\Component
$connection yii\sphinx\Connection Экземпляр соединения Sphinx. yii\sphinx\Query
$distinct boolean Выбирать ли только уникальные строки данных. yii\db\Query
$emulateExecution boolean Эмулировать ли фактическое выполнение запроса, возвращая пустые или ложные результаты. yii\db\QueryTrait
$facets array Параметры поиска по аспектам. yii\sphinx\Query
$from array Таблица(ы), из которых следует выбирать. yii\db\Query
$groupBy array Как сгруппировать результаты запроса. yii\db\Query
$groupLimit integer Предел для групп: вернуть (не более) N лучших совпадений для каждой группы. yii\sphinx\Query
$having string|array|yii\db\Expression Условие, которое должно быть применено в разделе GROUP BY. yii\db\Query
$indexBy string|callable Имя столбца, по которому должны быть индексированы результаты запроса. yii\db\QueryTrait
$inverseOf string Имя связи, обратной данной. yii\db\ActiveRelationTrait
$join array Как объединить с другими таблицами. yii\db\Query
$limit integer|yii\db\Expression Максимальное количество записей, которые должны быть возвращены. yii\db\QueryTrait
$link array Столбцы первичной и внешней таблиц, которые устанавливают связь. yii\db\ActiveRelationTrait
$match string|yii\db\Expression Текст, который должен быть проиндексирован в режиме полнотекстового поиска. yii\sphinx\Query
$modelClass string Имя класса ActiveRecord. yii\db\ActiveQueryTrait
$multiple boolean Представляет ли этот запрос отношение к нескольким записям. yii\db\ActiveRelationTrait
$offset integer|yii\db\Expression Смещение с нулевой точки, от которого должны возвращаться записи. yii\db\QueryTrait
$options array Параметры запроса в формате: optionName => optionValue. Они составят запрос OPTION. yii\sphinx\Query
$orderBy array Как отсортировать результаты запроса. yii\db\QueryTrait
$params array Список значений параметров запроса, индексированных параметрами-заполнителями. yii\db\Query
$primaryModel yii\db\ActiveRecord Основная модель реляционного запроса. yii\db\ActiveRelationTrait
$select array Столбцы, которые выбираются. yii\db\Query
$selectOption string Дополнительный параметр, который следует добавить к ключевому слову 'SELECT'. yii\db\Query
$showMeta boolean|string|yii\db\Expression Выполнять ли автоматически запрос 'SHOW META' по отношению к основному. yii\sphinx\Query
$snippetCallback callable PHP обратный вызов, который должен использоваться для извлечения исходных данных для фрагментов. yii\sphinx\Query
$snippetOptions array Параметры запроса для вызова фрагмента. yii\sphinx\Query
$sql string SQL-запрос, который следует выполнить для получения записей AR. yii\sphinx\ActiveQuery
$union array Используется для построения клаузы UNION(ов) в SQL-запросе. yii\db\Query
$via array|object Запрос, связанный со связующей таблицей. yii\db\ActiveRelationTrait
$where string|array Условие запроса. yii\db\QueryTrait
$with array Список связей, с которыми должен выполняться этот запрос. yii\db\ActiveQueryTrait
$within string Оператор WITHIN GROUP ORDER BY. yii\sphinx\Query

Публичные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. yii\base\Component
__clone() Клонирует внутренние объекты. yii\db\ActiveRelationTrait
__construct() Конструктор. yii\sphinx\ActiveQuery
__get() Возвращает значение свойства компонента. yii\base\Component
__isset() Проверяет, установлено ли свойство, т.е. определено и не равно null. yii\base\Component
__set() Устанавливает значение свойства компонента. yii\base\Component
__unset() Устанавливает свойство компонента в null. yii\base\Component
addFacets() Добавляет дополнительную часть запроса FACET. yii\sphinx\Query
addGroupBy() Добавляет дополнительные столбцы группировки к существующим. yii\db\Query
addOptions() Добавляет дополнительные параметры запроса. yii\sphinx\Query
addOrderBy() Добавляет дополнительные столбцы ORDER BY в запрос. yii\db\QueryTrait
addParams() Добавляет дополнительные параметры для привязки к запросу. yii\db\Query
addSelect() Добавляет больше столбцов в часть SELECT запроса. yii\db\Query
addWithin() Добавляет дополнительные столбцы WITHIN GROUP ORDER BY в запрос. yii\sphinx\Query
all() Выполняет запрос и возвращает все результаты в виде массива. yii\sphinx\ActiveQuery
andFilterCompare() Добавляет условие фильтрации для определенного столбца и позволяет пользователю выбрать оператор фильтра. yii\db\Query
andFilterHaving() Добавляет дополнительное условие HAVING к существующему, но игнорирует пустые операнды. yii\db\Query
andFilterWhere() Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды. yii\db\QueryTrait
andHaving() Добавляет дополнительное условие HAVING к существующему. yii\db\Query
andWhere() Добавляет дополнительное условие WHERE к существующему. yii\db\QueryTrait
asArray() Устанавливает свойство asArray(). yii\db\ActiveQueryTrait
attachBehavior() Присоединяет поведение к этому компоненту. yii\base\Component
attachBehaviors() Присоединяет список поведений к компоненту. yii\base\Component
average() Возвращает среднее значение указанных значений столбца. yii\db\Query
batch() Запускает пакетный запрос. yii\db\Query
behaviors() Возвращает список поведений, которые должен иметь этот компонент. yii\base\Component
canGetProperty() Возвращает значение, указывающее, можно ли считать свойство. yii\base\Component
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Component
className() Возвращает полное имя этого класса. yii\base\Object
column() Выполняет запрос и возвращает первый столбец результата. yii\db\Query
count() Возвращает количество записей. yii\db\Query
create() Создает новый объект Query и копирует значения свойств из существующего. yii\sphinx\Query
createCommand() Создает команду DB, которая может быть использована для выполнения этого запроса. yii\sphinx\ActiveQuery
detachBehavior() Отсоединяет поведение от компонента. yii\base\Component
detachBehaviors() Отсоединяет все поведения от компонента. yii\base\Component
distinct() Устанавливает значение, указывающее, использовать ли SELECT DISTINCT. yii\db\Query
each() Запускает пакетный запрос и извлекает данные строка за строкой. yii\db\Query
emulateExecution() Устанавливает, нужно ли эмулировать выполнение запроса, предотвращая любое взаимодействие с хранилищем данных. yii\db\QueryTrait
ensureBehaviors() Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. yii\base\Component
exists() Возвращает значение, указывающее, содержит ли результат запроса какую-либо строку данных. yii\db\Query
facets() Устанавливает часть запроса FACET. yii\sphinx\Query
filterHaving() Устанавливает часть HAVING запроса, но игнорирует пустые операнды. yii\db\Query
filterWhere() Устанавливает часть WHERE запроса, но игнорирует пустые операнды. yii\db\QueryTrait
findFor() Находит связанные записи для указанной основной записи. yii\db\ActiveRelationTrait
findWith() Находит записи, соответствующие одному или нескольким отношениям, и заполняет их в основные модели. yii\db\ActiveQueryTrait
from() Устанавливает часть FROM запроса. yii\db\Query
getBehavior() Возвращает объект именованного поведения. yii\base\Component
getBehaviors() Возвращает все поведения, присоединенные к этому компоненту. yii\base\Component
getConnection() yii\sphinx\Query
groupBy() Устанавливает часть GROUP BY запроса. yii\db\Query
groupLimit() Устанавливает лимит групп: возвращать (не более) N лучших совпадений для каждой группы. yii\sphinx\Query
hasEventHandlers() Возвращает значение, указывающее, есть ли какие-либо обработчики, присоединенные к указанному событию. yii\base\Component
hasMethod() Возвращает значение, указывающее, определён ли метод. yii\base\Component
hasProperty() Возвращает значение, указывающее, определена ли для этого компонента свойство. yii\base\Component
having() Устанавливает часть HAVING запроса. yii\db\Query
indexBy() Устанавливает свойство indexBy(). yii\db\QueryTrait
init() Инициализирует объект. yii\sphinx\ActiveQuery
innerJoin() Добавляет часть INNER JOIN к запросу. yii\sphinx\Query
inverseOf() Устанавливает имя отношения, являющегося обратным этому отношению. yii\db\ActiveRelationTrait
join() Добавляет часть JOIN к запросу. yii\sphinx\Query
leftJoin() Добавляет часть LEFT OUTER JOIN к запросу. yii\sphinx\Query
limit() Устанавливает часть LIMIT запроса. yii\db\QueryTrait
match() Устанавливает текст полнотекстового запроса. Этот текст будет составлен в оператор MATCH внутри условия WHERE. yii\sphinx\Query
max() Возвращает максимальное значение указанных значений столбцов. yii\db\Query
min() Возвращает минимальное значение указанных значений столбцов. yii\db\Query
off() Отсоединяет существующий обработчик событий от этого компонента. yii\base\Component
offset() Устанавливает часть OFFSET запроса. yii\db\QueryTrait
on() Присоединяет обработчик событий к событию. yii\base\Component
one() Выполняет запрос и возвращает одну строку результата. yii\sphinx\ActiveQuery
options() Устанавливает параметры запроса. yii\sphinx\Query
orFilterHaving() Добавляет дополнительное условие HAVING к существующему, но игнорирует пустые операнды. yii\db\Query
orFilterWhere() Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды. yii\db\QueryTrait
orHaving() Добавляет дополнительное условие HAVING к существующему. yii\db\Query
orWhere() Добавляет дополнительное условие WHERE к существующему. yii\db\QueryTrait
orderBy() Устанавливает часть ORDER BY запроса. yii\db\QueryTrait
params() Устанавливает параметры, которые должны быть связаны с запросом. yii\db\Query
populate() Преобразует результаты исходного запроса в формат, указанный в этом запросе. yii\sphinx\ActiveQuery
populateRelation() Находит связанные записи и заполняет их в основные модели. yii\db\ActiveRelationTrait
prepare() Подготавливается к построению SQL. yii\db\Query
rightJoin() Добавляет часть RIGHT OUTER JOIN к запросу. yii\sphinx\Query
scalar() Возвращает результат запроса как скалярное значение. yii\db\Query
search() Выполняет запрос и возвращает полный результат поиска, включая, например, hits, facets. yii\sphinx\Query
select() Устанавливает часть SELECT запроса. yii\db\Query
setConnection() yii\sphinx\Query
showMeta() Устанавливает, нужно ли автоматически выполнять 'SHOW META' для запроса поиска. yii\sphinx\Query
snippetByModel() Устанавливает snippetCallback() в fetchSnippetSourceFromModels(), что позволяет извлечь строки исходного фрагмента из моделей Active Record, используя метод yii\sphinx\ActiveRecord::getSnippetSource(). yii\sphinx\ActiveQuery
snippetCallback() Устанавливает PHP обратный вызов, который должен использоваться для получения исходных данных для построения фрагментов. yii\sphinx\Query
snippetOptions() Устанавливает параметры запроса фрагментов. yii\sphinx\Query
sum() Возвращает сумму указанных значений столбцов. yii\db\Query
trigger() Вызывает событие. yii\base\Component
union() Добавляет SQL-запрос с использованием оператора UNION. yii\db\Query
via() Указывает отношение, связанное с таблицей соединения. yii\db\ActiveRelationTrait
where() Устанавливает часть WHERE запроса. yii\db\QueryTrait
with() Указывает отношения, с которыми должен быть выполнен этот запрос. yii\db\ActiveQueryTrait
within() Устанавливает часть WITHIN GROUP ORDER BY запроса. yii\sphinx\Query

Защищённые методы

Метод Описание Определено в
callSnippets() Создает фрагменты из предоставленных исходных данных. yii\sphinx\ActiveQuery
callSnippetsInternal() Создает фрагменты из предоставленных исходных данных по заданному индексу. yii\sphinx\Query
createModels() Преобразует найденные строки в экземпляры моделей. yii\db\ActiveQueryTrait
defaultConnection() yii\sphinx\ActiveQuery
fetchSnippetSourceFromModels() Извлекает источник фрагментов, используя метод yii\sphinx\ActiveRecord::getSnippetSource(). yii\sphinx\ActiveQuery
fillUpSnippets() Заполняет строки результатов запроса фрагментами, созданными на основе результата snippetCallback(). yii\sphinx\Query
filterCondition() Удаляет пустые операнды из заданного условия запроса. yii\db\QueryTrait
isEmpty() Возвращает значение, указывающее, является ли данное значение "пустым". yii\db\QueryTrait
normalizeOrderBy() Нормализует формат данных ORDER BY. yii\db\QueryTrait
queryScalar() Выполняет запрос скалярного значения, сначала установив select(). yii\sphinx\Query

События

Событие Тип Описание Определено в
EVENT_INIT \yii\sphinx\Event Событие, которое срабатывает при инициализации запроса через init(). yii\sphinx\ActiveQuery

Подробное описание свойств

$sql общедоступное свойство

SQL-запрос для получения записей AR. Он устанавливается методом yii\sphinx\ActiveRecord::findBySql().

public string $sql = null

Подробное описание методов

__construct() общедоступный метод

Конструктор.

общедоступный void __construct ( $modelClass, $config = [] )
$modelClass массив

Класс модели, связанный с этим запросом

$config массив

Настройки, которые необходимо применить к новосозданному объекту запроса

all() общедоступный метод

Выполняет запрос и возвращает все результаты в виде массива.

общедоступный массив all ( $db = null )
$db yii\sphinx\Connection

Подключение к базе данных, используемое для создания команды базы данных. Если null, будет использовано подключение к базе данных, возвращаемое $modelClass.

возвращаемое значение массив

Результаты запроса. Если запрос не возвращает результатов, будет возвращен пустой массив.

callSnippets() защищенный метод

Создаёт фрагменты из предоставленных исходных данных.

защищенный массив callSnippets ( массив $source )
$source массив

Исходные данные для извлечения фрагмента.

возвращаемое значение массив

Список фрагментов.

вызывает исключение yii\base\InvalidCallException

в случае, если match() не указан.

createCommand() общедоступный метод

Создаёт команду базы данных, которую можно использовать для выполнения этого запроса.

общедоступный yii\sphinx\Command createCommand ( $db = null )
$db yii\sphinx\Connection

Подключение к базе данных, используемое для создания команды базы данных. Если null, будет использовано подключение к базе данных, возвращаемое $modelClass.

возвращаемое значение yii\sphinx\Command

Созданный экземпляр команды базы данных.

defaultConnection() защищенный метод

защищенный yii\sphinx\Connection defaultConnection ( )
возвращаемое значение yii\sphinx\Connection

Значение по умолчанию для подключения.

fetchSnippetSourceFromModels() защищенный метод

Извлекает источник фрагментов с помощью метода yii\sphinx\ActiveRecord::getSnippetSource().

защищенный массив fetchSnippetSourceFromModels ( $models )
$models yii\sphinx\ActiveRecord[]

Строки с результатами необработанного запроса.

возвращаемое значение массив

Строки-источники фрагментов.

вызывает исключение yii\base\InvalidCallException

если asArray() включено.

init() общедоступный метод

Инициализирует объект.

Этот метод вызывается в конце конструктора. Стандартная реализация вызывает событие EVENT_INIT. При переопределении этого метода убедитесь, что вы вызываете родительскую реализацию в конце, чтобы гарантировать вызов события.

общедоступный void init ( )

one() общедоступный метод

Выполняет запрос и возвращает одну строку результата.

общедоступный yii\sphinx\ActiveRecord|массив|null one ( $db = null )
$db yii\sphinx\Connection

Подключение к базе данных, используемое для создания команды базы данных. Если null, будет использовано подключение к базе данных, возвращаемое $modelClass.

возвращаемое значение yii\sphinx\ActiveRecord|массив|null

Одна строка результата запроса. В зависимости от настроек asArray(), результат запроса может быть массивом или объектом ActiveRecord. Будет возвращен null, если запрос не возвращает результатов.

populate() общедоступный метод

Преобразует результаты необработанного запроса в формат, указанный в этом запросе.

Этот метод используется внутри для преобразования данных, извлечённых из базы данных, в формат, требуемый этим запросом.

общедоступный массив populate ( $rows )
$rows массив

Необработанные результаты запроса из базы данных

возвращаемое значение массив

Преобразованные результаты запроса

snippetByModel() общедоступный метод

Устанавливает snippetCallback() на fetchSnippetSourceFromModels(), что позволяет извлекать строки-источники фрагментов из моделей Active Record с помощью метода yii\sphinx\ActiveRecord::getSnippetSource().

Например:

class Article extends ActiveRecord
{
    public function getSnippetSource()
    {
        return file_get_contents('/path/to/source/files/' . $this->id . '.txt');;
    }
}

$articles = Article::find()->snippetByModel()->all();

Предупреждение: это опция НЕ должна использоваться вместе с asArray()!

общедоступный $this snippetByModel ( )
возвращаемое значение $this

Сам объект запроса

Подробности событий

EVENT_INIT событие типа \yii\sphinx\Event

Событие, которое срабатывает при инициализации запроса через init().

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-sphinx-activequery.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API