Класс yii\elasticsearch\ActiveRecord
| Наследование | yii\elasticsearch\ActiveRecord » yii\db\BaseActiveRecord » yii\base\Model » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | ArrayAccess, IteratorAggregate, yii\base\Arrayable, yii\base\Configurable, yii\db\ActiveRecordInterface |
| Использует Трейты | yii\base\ArrayableTrait |
| Доступен с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2-elasticsearch/blob/master/ActiveRecord.php |
ActiveRecord — базовый класс для классов, представляющих реляционные данные в виде объектов.
Этот класс реализует паттерн ActiveRecord для полнотекстового поиска и хранения данных в elasticsearch.
Для определения записи подкласс должен, как минимум, реализовать метод attributes() для определения атрибутов. Первичный ключ (поле _id в терминах elasticsearch) представлен getId() и setId(). Первичный ключ не является частью атрибутов.
Следующий пример модели называется Customer:
class Customer extends \yii\elasticsearch\ActiveRecord
{
public function attributes()
{
return ['id', 'name', 'address', 'registration_date'];
}
}
Вы можете переопределить методы index() и type() для определения индекса и типа, которые представляет эта запись.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $activeValidators | yii\validators\Validator[] | Валидаторы, применимые к текущему $scenario. | yii\base\Model |
| $attributes | массив | Значения атрибутов (имя => значение). | yii\base\Model |
| $behaviors | yii\base\Behavior[] | Список поведений, прикрепленных к этому компоненту | yii\base\Component |
| $dirtyAttributes | массив | Измененные значения атрибутов (пары имя-значение) | yii\db\BaseActiveRecord |
| $errors | массив | Ошибки для всех атрибутов или указанного атрибута. | yii\base\Model |
| $explanation | массив|null | Объяснение для каждого совпадения, как вычислялась его оценка. | yii\elasticsearch\ActiveRecord |
| $firstErrors | массив | Первые ошибки. | yii\base\Model |
| $highlight | массив|null | Список массивов с выделенными фрагментами, индексированными по именам полей. | yii\elasticsearch\ActiveRecord |
| $isNewRecord | boolean | Является ли запись новой и следует ли вставлять ее при вызове save(). | yii\db\BaseActiveRecord |
| $iterator | ArrayIterator | Итератор для обхода элементов в списке. | yii\base\Model |
| $oldAttributes | массив | Старые значения атрибутов (пары имя-значение) | yii\db\BaseActiveRecord |
| $oldPrimaryKey | смешанный тип | Старое значение первичного ключа. | yii\elasticsearch\ActiveRecord |
| $primaryKey | смешанный тип | Значение первичного ключа. | yii\elasticsearch\ActiveRecord |
| $relatedRecords | массив | Массив связанных записей, индексированных по именам отношений. | yii\db\BaseActiveRecord |
| $scenario | строка | Сценарий, в котором находится эта модель. | yii\base\Model |
| $score | float | Возвращает оценку этой записи, когда она была получена с помощью запроса find(). | yii\elasticsearch\ActiveRecord |
| $validators | ArrayObject|yii\validators\Validator[] | Все валидаторы, объявленные в модели. | yii\base\Model |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путём клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Магический метод-геттер PHP. | yii\db\BaseActiveRecord |
| __isset() | Проверяет, является ли значение свойства null. | yii\db\BaseActiveRecord |
| __set() | Магический метод-сеттер PHP. | yii\db\BaseActiveRecord |
| __unset() | Устанавливает свойство компонента в null. | yii\db\BaseActiveRecord |
| activeAttributes() | Возвращает имена атрибутов, которые проверяются на валидность в текущем сценарии. | yii\base\Model |
| addError() | Добавляет новую ошибку к указанному атрибуту. | yii\base\Model |
| addErrors() | Добавляет список ошибок. | yii\base\Model |
| afterDelete() | Этот метод вызывается после удаления записи. | yii\db\BaseActiveRecord |
| afterFind() | Этот метод вызывается при создании объекта AR и его заполнении результатом запроса. | yii\db\BaseActiveRecord |
| afterRefresh() | Этот метод вызывается при обновлении объекта AR. | yii\db\BaseActiveRecord |
| afterSave() | Этот метод вызывается в конце вставки или обновления записи. | yii\db\BaseActiveRecord |
| afterValidate() | Этот метод вызывается после завершения проверки. | yii\base\Model |
| arrayAttributes() | Список атрибутов, которые должны обрабатываться как массивы при получении через yii\elasticsearch\ActiveQuery::fields(). | yii\elasticsearch\ActiveRecord |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | yii\base\Component |
| attributeHints() | Возвращает подсказки к атрибутам. | yii\base\Model |
| attributeLabels() | Возвращает метки атрибутов. | yii\base\Model |
| attributes() | Возвращает список всех имён атрибутов модели. | yii\elasticsearch\ActiveRecord |
| beforeDelete() | Этот метод вызывается перед удалением записи. | yii\db\BaseActiveRecord |
| beforeSave() | Этот метод вызывается в начале вставки или обновления записи. | yii\db\BaseActiveRecord |
| beforeValidate() | Этот метод вызывается перед началом проверки. | yii\base\Model |
| behaviors() | Возвращает список поведений, которые должен иметь этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\db\BaseActiveRecord |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\db\BaseActiveRecord |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| clearErrors() | Удаляет ошибки для всех атрибутов или одного атрибута. | yii\base\Model |
| createValidators() | Создаёт объекты валидаторов на основе правил проверки, указанных в rules(). | yii\base\Model |
| delete() | Удаляет строку таблицы, соответствующую этому активному записям. | yii\elasticsearch\ActiveRecord |
| deleteAll() | Удаляет строки в таблице, используя предоставленные условия. | yii\elasticsearch\ActiveRecord |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. | yii\base\Component |
| equals() | Возвращает значение, указывающее, является ли данный активный записям таким же, как текущий. | yii\db\BaseActiveRecord |
| extraFields() | Возвращает список полей, которые могут быть расширены и возвращены методом toArray(). | yii\base\ArrayableTrait |
| fields() | Возвращает список полей, которые по умолчанию должны возвращаться методом toArray(), если не указаны конкретные поля. | yii\base\ArrayableTrait |
| find() | Создаёт экземпляр \yii\elasticsearch\ActiveQueryInterface для целей запроса. | yii\elasticsearch\ActiveRecord |
| findAll() | Возвращает список моделей активных записей, которые соответствуют указанному значению(ям) первичного ключа или набору значений столбцов. | yii\elasticsearch\ActiveRecord |
| findOne() | Возвращает единственную модель активной записи по первичному ключу или массиву значений столбцов. | yii\elasticsearch\ActiveRecord |
| formName() | Возвращает имя формы, которое должен использовать этот класс модели. | yii\base\Model |
| generateAttributeLabel() | Генерирует удобочитаемую метку атрибута на основе имени атрибута. | yii\base\Model |
| get() | Получает запись по её первичному ключу. | yii\elasticsearch\ActiveRecord |
| getActiveValidators() | Возвращает валидаторы, применимые к текущему $сценарий. | yii\base\Model |
| getAttribute() | Возвращает значение именованного атрибута. | yii\db\BaseActiveRecord |
| getAttributeHint() | Возвращает текстовую подсказку для указанного атрибута. | yii\db\BaseActiveRecord |
| getAttributeLabel() | Возвращает текстовую метку для указанного атрибута. | yii\db\BaseActiveRecord |
| getAttributes() | Возвращает значения атрибутов. | yii\base\Model |
| getBehavior() | Возвращает объект поведения с заданным именем. | yii\base\Component |
| getBehaviors() | Возвращает все присоединённые к этому компоненту поведения. | yii\base\Component |
| getDb() | Возвращает подключение к базе данных, используемое этим классом AR. | yii\elasticsearch\ActiveRecord |
| getDirtyAttributes() | Возвращает значения атрибутов, которые были изменены с момента их последней загрузки или сохранения. | yii\db\BaseActiveRecord |
| getErrors() | Возвращает ошибки для всех атрибутов или одного атрибута. | yii\base\Model |
| getExplanation() | yii\elasticsearch\ActiveRecord | |
| getFirstError() | Возвращает первую ошибку для указанного атрибута. | yii\base\Model |
| getFirstErrors() | Возвращает первую ошибку для каждого атрибута в модели. | yii\base\Model |
| getHighlight() | yii\elasticsearch\ActiveRecord | |
| getIsNewRecord() | Возвращает значение, указывающее, является ли текущая запись новой. | yii\db\BaseActiveRecord |
| getIterator() | Возвращает итератор для обхода атрибутов в модели. | yii\base\Model |
| getOldAttribute() | Возвращает старое значение атрибута с указанным именем. | yii\db\BaseActiveRecord |
| getOldAttributes() | Возвращает старые значения атрибутов. | yii\db\BaseActiveRecord |
| getOldPrimaryKey() | Возвращает старое значение(я) первичного ключа. | yii\elasticsearch\ActiveRecord |
| getPrimaryKey() | Возвращает значение(я) первичного ключа. | yii\elasticsearch\ActiveRecord |
| getRelatedRecords() | Возвращает все заполненные связанные записи. | yii\db\BaseActiveRecord |
| getRelation() | Возвращает объект отношения с указанным именем. | yii\db\BaseActiveRecord |
| getScenario() | Возвращает сценарий, в котором используется эта модель. | yii\base\Model |
| getScore() | yii\elasticsearch\ActiveRecord | |
| getValidators() | Возвращает все валидаторы, объявленные в rules(). | yii\base\Model |
| hasAttribute() | Возвращает значение, указывающее, содержит ли модель атрибут с указанным именем. | yii\db\BaseActiveRecord |
| hasErrors() | Возвращает значение, указывающее, есть ли какие-либо ошибки валидации. | yii\base\Model |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, присоединённый к событию с заданным именем. | yii\base\Component |
| hasMany() | Объявляет отношение has-many. | yii\db\BaseActiveRecord |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasOne() | Объявляет отношение has-one. | yii\db\BaseActiveRecord |
| hasProperty() | Возвращает значение, указывающее, определена ли свойство. | yii\base\Object |
| index() | yii\elasticsearch\ActiveRecord | |
| init() | Инициализирует объект. | yii\db\BaseActiveRecord |
| insert() | Вставляет документ в связанный индекс, используя значения атрибутов этой записи. | yii\elasticsearch\ActiveRecord |
| instantiate() | Создаёт экземпляр активной записи. | yii\elasticsearch\ActiveRecord |
| isAttributeActive() | Возвращает значение, указывающее, активен ли атрибут в текущем сценарии. | yii\base\Model |
| isAttributeChanged() | Возвращает значение, указывающее, был ли изменён атрибут с указанным именем. | yii\db\BaseActiveRecord |
| isAttributeRequired() | Возвращает значение, указывающее, является ли атрибут обязательным. | yii\base\Model |
| isAttributeSafe() | Возвращает значение, указывающее, является ли атрибут безопасным для массовых назначений. | yii\base\Model |
| isPrimaryKey() | Возвращает значение, указывающее, представляет ли данный набор атрибутов первичный ключ для этой модели. | yii\db\BaseActiveRecord |
| isRelationPopulated() | Проверяет, было ли отношение с заданным именем заполнено записями. | yii\db\BaseActiveRecord |
| link() | Устанавливает взаимосвязь между двумя моделями. | yii\db\BaseActiveRecord |
| load() | Заполняет модель входными данными. | yii\base\Model |
| loadMultiple() | Заполняет набор моделей данными от пользователя. | yii\base\Model |
| markAttributeDirty() | Помечает атрибут как изменённый. | yii\db\BaseActiveRecord |
| mget() | Получает список записей по их первичным ключам. | yii\elasticsearch\ActiveRecord |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| offsetExists() | Возвращает, существует ли элемент по указанному смещению. | yii\db\BaseActiveRecord |
| offsetGet() | Возвращает элемент по указанному смещению. | yii\base\Model |
| offsetSet() | Устанавливает элемент по указанному смещению. | yii\base\Model |
| offsetUnset() | Устанавливает значение элемента по указанному смещению в null. | yii\db\BaseActiveRecord |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| onUnsafeAttribute() | Этот метод вызывается при массовом присваивании небезопасного атрибута. | yii\base\Model |
| optimisticLock() | Этот метод не имеет эффекта в Elasticsearch ActiveRecord. | yii\elasticsearch\ActiveRecord |
| populateRecord() | Заполняет объект активной записи данными из строки базы данных/хранилища. | yii\elasticsearch\ActiveRecord |
| populateRelation() | Заполняет указанное отношение связанными записями. | yii\db\BaseActiveRecord |
| primaryKey() | Этот метод определяет атрибут, уникально идентифицирующий запись. | yii\elasticsearch\ActiveRecord |
| refresh() | Перезаполняет активную запись последними данными. | yii\db\BaseActiveRecord |
| rules() | Возвращает правила валидации для атрибутов. | yii\base\Model |
| safeAttributes() | Возвращает имена атрибутов, которые безопасно присваивать массово в текущей ситуации. | yii\base\Model |
| save() | Сохраняет текущую запись. | yii\db\BaseActiveRecord |
| scenarios() | Возвращает список сценариев и соответствующие активные атрибуты. | yii\base\Model |
| setAttribute() | Устанавливает значение указанного атрибута. | yii\db\BaseActiveRecord |
| setAttributes() | Устанавливает значения атрибутов массовым способом. | yii\base\Model |
| setIsNewRecord() | Устанавливает значение, указывающее, является ли запись новой. | yii\db\BaseActiveRecord |
| setOldAttribute() | Устанавливает старое значение указанного атрибута. | yii\db\BaseActiveRecord |
| setOldAttributes() | Устанавливает старые значения атрибутов. | yii\db\BaseActiveRecord |
| setPrimaryKey() | Устанавливает первичный ключ | yii\elasticsearch\ActiveRecord |
| setScenario() | Устанавливает сценарий для модели. | yii\base\Model |
| toArray() | Преобразует модель в массив. | yii\base\ArrayableTrait |
| trigger() | Вызывает событие. | yii\base\Component |
| type() | yii\elasticsearch\ActiveRecord | |
| unlink() | Уничтожает связь между двумя моделями. | yii\db\BaseActiveRecord |
| unlinkAll() | Уничтожает связь в текущей модели. | yii\elasticsearch\ActiveRecord |
| update() | Сохраняет изменения в этой активной записи в связанной таблице базы данных. | yii\elasticsearch\ActiveRecord |
| updateAll() | Обновляет все записи, первичные ключи которых указаны. | yii\elasticsearch\ActiveRecord |
| updateAllCounters() | Обновляет все соответствующие записи, используя предоставленные изменения счётчиков и условия. | yii\elasticsearch\ActiveRecord |
| updateAttributes() | Обновляет указанные атрибуты. | yii\db\BaseActiveRecord |
| updateCounters() | Обновляет одну или несколько столбцов счётчиков для текущего объекта AR. | yii\db\BaseActiveRecord |
| validate() | Выполняет проверку данных. | yii\base\Model |
| validateMultiple() | Проверяет несколько моделей. | yii\base\Model |
Защищенные методы
| Метод | Описание | Определено |
|---|---|---|
| createRelationQuery() | Создает экземпляр запроса для отношения has-one или has-many. | yii\db\BaseActiveRecord |
| findByCondition() | Находит экземпляр(ы) ActiveRecord по заданному условию. | yii\db\BaseActiveRecord |
| primaryKeysByCondition() | Выполняет быстрый и высокоэффективный запрос с прокруткой/сканированием для получения списка первичных ключей, удовлетворяющих заданному условию. Если условие представляет собой список первичных ключей (например: ['_id' => ['1', '2', '3']]), запрос не выполняется для повышения производительности. | yii\elasticsearch\ActiveRecord |
| resolveFields() | Определяет, какие поля могут быть возвращены методом toArray(). | yii\base\ArrayableTrait |
| updateInternal() | yii\elasticsearch\ActiveRecord |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_AFTER_DELETE | yii\base\Event | Событие, которое срабатывает после удаления записи. | yii\db\BaseActiveRecord |
| EVENT_AFTER_FIND | yii\base\Event | Событие, которое срабатывает после создания записи и заполнения ее результатами запроса. | yii\db\BaseActiveRecord |
| EVENT_AFTER_INSERT | yii\db\AfterSaveEvent | Событие, которое срабатывает после вставки записи. | yii\db\BaseActiveRecord |
| EVENT_AFTER_REFRESH | yii\base\Event | Событие, которое срабатывает после обновления записи. (доступно начиная с версии 2.0.8) | yii\db\BaseActiveRecord |
| EVENT_AFTER_UPDATE | yii\db\AfterSaveEvent | Событие, которое срабатывает после обновления записи. | yii\db\BaseActiveRecord |
| EVENT_AFTER_VALIDATE | yii\base\Event | Событие, генерируемое в конце метода validate() | yii\base\Model |
| EVENT_BEFORE_DELETE | yii\base\ModelEvent | Событие, которое срабатывает перед удалением записи. | yii\db\BaseActiveRecord |
| EVENT_BEFORE_INSERT | yii\base\ModelEvent | Событие, которое срабатывает перед вставкой записи. | yii\db\BaseActiveRecord |
| EVENT_BEFORE_UPDATE | yii\base\ModelEvent | Событие, которое срабатывает перед обновлением записи. | yii\db\BaseActiveRecord |
| EVENT_BEFORE_VALIDATE | yii\base\ModelEvent | Событие, генерируемое в начале метода validate(). | yii\base\Model |
| EVENT_INIT | yii\base\Event | Событие, которое срабатывает при инициализации записи с помощью метода init(). | yii\db\BaseActiveRecord |
Постоянные
| Константа | Значение | Описание | Определено в |
|---|---|---|---|
| SCENARIO_DEFAULT | 'default' | Имя сценария по умолчанию. | yii\base\Model |
Подробное описание свойств
$explanation общедоступное только для чтения свойство
Объяснение для каждого попадания, как рассчитывался его балл.
public array|null getExplanation ( )
$highlight общедоступное только для чтения свойство
Список массивов с выделенными фрагментами, индексированными по именам полей.
public array|null getHighlight ( )
$oldPrimaryKey общедоступное только для чтения свойство
Старое значение первичного ключа. Массив (имя столбца => значение столбца) возвращается, если первичный ключ составной или $asArray является true. В противном случае возвращается строка (null возвращается, если значение ключа null).
public mixed getOldPrimaryKey ( $asArray = false )
$primaryKey общедоступное свойство
Значение первичного ключа. Массив (имя столбца => значение столбца) возвращается, если первичный ключ составной или $asArray является true. В противном случае возвращается строка (null возвращается, если значение ключа null).
public mixed getPrimaryKey ( $asArray = false )
public void setPrimaryKey ( $value )
$score общедоступное только для чтения свойство
Возвращает балл этой записи, когда она была извлечена с помощью запроса find().
public float getScore ( )
Подробное описание методов
arrayAttributes() публичный метод
Список атрибутов, которые должны обрабатываться как массивы при получении через yii\elasticsearch\ActiveQuery::fields().
Если атрибуты не перечислены в этом методе, атрибуты, полученные через yii\elasticsearch\ActiveQuery::fields(), будут преобразовываться в скалярное значение, когда массив результатов содержит только одно значение.
| public string[] arrayAttributes ( ) | ||
|---|---|---|
| return | string[] |
Список имён атрибутов. Должен быть подмножеством attributes(). |
attributes() публичный метод
Возвращает список всех имён атрибутов модели.
Этот метод должен быть переопределён дочерними классами для определения доступных атрибутов.
Атрибуты — это имена полей соответствующего документа Elasticsearch. Поле primaryKey для документов Elasticsearch по умолчанию — поле _id, которое не является частью атрибутов. Вы можете определить сопоставление путей для поля _id таким образом, чтобы оно стало частью полей _source и, следовательно, стало частью атрибутов.
| public string[] attributes ( ) | ||
|---|---|---|
| return | string[] |
Список имён атрибутов. |
| throws | yii\base\InvalidConfigException |
если не переопределён в дочернем классе. |
delete() публичный метод
Удаляет строку таблицы, соответствующую этому активному записям.
Этот метод выполняет следующие шаги в указанном порядке:
- вызов beforeDelete(). Если метод возвращает
false, он пропустит остальные шаги; - удаление записи из базы данных;
- вызов afterDelete().
На шагах 1 и 3 выше события с именами EVENT_BEFORE_DELETE и EVENT_AFTER_DELETE будут вызваны соответствующими методами.
| public integer|boolean delete ( $options = [] ) | ||
|---|---|---|
| $options | array |
Параметры, предоставленные в этом параметре, передаются в Elasticsearch в качестве параметров запроса URI. Среди прочих:
Для получения более подробной информации об этих параметрах, обратитесь к документации Elasticsearch. Следующие параметры относятся к Yii:
|
| return | integer|boolean |
Количество удалённых строк или false, если удаление не удалось по какой-либо причине. Обратите внимание, что количество удалённых строк может быть 0, даже если выполнение удаления прошло успешно. |
| throws | yii\db\StaleObjectException |
если оптимистическая блокировка включена, а данные, которые необходимо удалить, устарели. |
| throws | yii\elasticsearch\Exception |
в случае неудачи при удалении. |
deleteAll() публичный статический метод
Удаляет строки в таблице, используя предоставленные условия.
ПРЕДУПРЕЖДЕНИЕ: Если вы не укажете никаких условий, этот метод удалит ВСЕ строки в таблице.
Например, чтобы удалить всех клиентов, статус которых равен 3:
Customer::deleteAll(['status' => 3]);
См. также [[yii\elasticsearch\ActiveRecord::primaryKeysByCondition()]].
| public static integer deleteAll ( $condition = [] ) | ||
|---|---|---|
| $condition | array |
Условия, которые будут переданы методу |
| return | integer |
Количество удалённых строк |
| throws | yii\elasticsearch\Exception |
при ошибке. |
find() публичный статический метод
Создаёт экземпляр \yii\elasticsearch\ActiveQueryInterface для целей запроса.
Возвращённый экземпляр \yii\elasticsearch\ActiveQueryInterface можно далее настроить, вызвав методы, определённые в \yii\elasticsearch\ActiveQueryInterface, прежде чем вызывать one() или all(), чтобы вернуть заполненные экземпляры ActiveRecord. Например,
// find the customer whose ID is 1
$customer = Customer::find()->where(['id' => 1])->one();
// find all active customers and order them by their age:
$customers = Customer::find()
->where(['status' => 1])
->orderBy('age')
->all();
Этот метод также вызывается yii\db\BaseActiveRecord::hasOne() и yii\db\BaseActiveRecord::hasMany() для создания реляционного запроса.
Вы можете переопределить этот метод, чтобы вернуть настроенный запрос. Например,
class Customer extends ActiveRecord
{
public static function find()
{
// use CustomerQuery instead of the default ActiveQuery
return new CustomerQuery(get_called_class());
}
}
Следующий код демонстрирует, как применить условие по умолчанию ко всем запросам:
class Customer extends ActiveRecord
{
public static function find()
{
return parent::find()->where(['deleted' => false]);
}
}
// Use andWhere()/orWhere() to apply the default condition
// SELECT FROM customer WHERE `deleted`=:deleted AND age>30
$customers = Customer::find()->andWhere('age>30')->all();
// Use where() to ignore the default condition
// SELECT FROM customer WHERE age>30
$customers = Customer::find()->where('age>30')->all();
| public static yii\elasticsearch\ActiveQuery find ( ) | ||
|---|---|---|
| return | yii\elasticsearch\ActiveQuery |
Новый созданный экземпляр yii\elasticsearch\ActiveQuery. |
findAll() публичный статический метод
Возвращает список активных записей модели, соответствующих указанным значениям первичного ключа или набору значений столбцов.
Метод принимает:
- скалярное значение (целое число или строка): запрос по одному значению первичного ключа и возвращает массив, содержащий соответствующую запись (или пустой массив, если не найдено).
- массив без ассоциативных пар: запрос по списку значений первичного ключа и возвращает соответствующие записи (или пустой массив, если не найдено ни одной). Обратите внимание, что пустое условие приведёт к пустому результату, так как оно будет интерпретироваться как поиск пустых значений первичных ключей, а не как пустое
WHEREусловие. - ассоциативный массив пар имя-значение: запрос по набору значений атрибутов и возвращает массив записей, соответствующих всем им (или пустой массив, если не найдено ни одной). Обратите внимание, что
['id' => 1, 2]обрабатывается как массив без ассоциативных пар.
Этот метод автоматически вызовет метод all() и вернёт массив экземпляров \yii\elasticsearch\ActiveRecordInterface.
Примечание: Так как это метод короткой записи, использование более сложных условий, таких как ['!=', 'id', 1], не будет работать. Если вам необходимо указать более сложные условия, используйте find() в сочетании с where().
Примеры использования приведены в следующем коде:
// find the customers whose primary key value is 10 $customers = Customer::findAll(10); // the above code is equivalent to: $customers = Customer::find()->where(['id' => 10])->all(); // find the customers whose primary key value is 10, 11 or 12. $customers = Customer::findAll([10, 11, 12]); // the above code is equivalent to: $customers = Customer::find()->where(['id' => [10, 11, 12]])->all(); // find customers whose age is 30 and whose status is 1 $customers = Customer::findAll(['age' => 30, 'status' => 1]); // the above code is equivalent to: $customers = Customer::find()->where(['age' => 30, 'status' => 1])->all();
| public static static[] findAll ( $condition ) | ||
|---|---|---|
| $condition | mixed |
Значение первичного ключа или набор значений столбцов |
| return | static[] |
Массив экземпляров ActiveRecord или пустой массив, если ничего не найдено. |
findOne() публичный статический метод
Возвращает экземпляр активной записи модели по первичному ключу или набору значений столбцов.
Метод принимает:
- скалярное значение (целое число или строка): поиск по одному значению первичного ключа и возврат соответствующей записи (или
null, если запись не найдена). - массив без ассоциативных пар: поиск по списку значений первичного ключа и возврат первой найденной записи (или
null, если запись не найдена). - ассоциативный массив пар «имя-значение»: поиск по набору значений атрибутов и возврат единственной записи, соответствующей всем им (или
null, если запись не найдена). Обратите внимание, что['id' => 1, 2]обрабатывается как массив без ассоциативных пар.
Этот метод автоматически вызовет метод one() и вернёт экземпляр \yii\elasticsearch\ActiveRecordInterface.
Примечание: Поскольку это метод сокращённой записи, использование более сложных условий, таких как ['!=', 'id', 1], не сработает. Если вам нужно указать более сложные условия, используйте метод find() в сочетании с where().
Примеры использования см. в следующем коде:
// find a single customer whose primary key value is 10 $customer = Customer::findOne(10); // the above code is equivalent to: $customer = Customer::find()->where(['id' => 10])->one(); // find the customers whose primary key value is 10, 11 or 12. $customers = Customer::findOne([10, 11, 12]); // the above code is equivalent to: $customers = Customer::find()->where(['id' => [10, 11, 12]])->one(); // find the first customer whose age is 30 and whose status is 1 $customer = Customer::findOne(['age' => 30, 'status' => 1]); // the above code is equivalent to: $customer = Customer::find()->where(['age' => 30, 'status' => 1])->one();
| public static findOne ( $condition ) | ||
|---|---|---|
| $condition | mixed |
Значение первичного ключа или набор значений столбцов |
| return | static |
Экземпляр ActiveRecord, соответствующий условию, или |
get() public static method
Получает запись по её первичному ключу.
| public static static|null get ( $primaryKey, $options = [] ) | ||
|---|---|---|
| $primaryKey | mixed |
Значение первичного ключа |
| $options | array |
Параметры, переданные в этом параметре, передаются в elasticsearch в качестве параметров запроса URI. Более подробную информацию об этих параметрах см. в документации elasticsearch. |
| return | static|null |
Экземпляр записи или null, если запись не найдена. |
getDb() public static method
Возвращает подключение к базе данных, используемое этим классом AR.
По умолчанию используется компонент «elasticsearch» приложения в качестве подключения к базе данных. Вы можете переопределить этот метод, если хотите использовать другое подключение к базе данных.
| public static yii\elasticsearch\Connection getDb ( ) | ||
|---|---|---|
| return | yii\elasticsearch\Connection |
Подключение к базе данных, используемое этим классом AR. |
getExplanation() public method (доступно начиная с версии 2.0.5)
| public array|null getExplanation ( ) | ||
|---|---|---|
| return | array|null |
Описание для каждого соответствия, как было вычислено его значение. |
getHighlight() public method
| public array|null getHighlight ( ) | ||
|---|---|---|
| return | array|null |
Список массивов с выделенными фрагментами, индексированных по именам полей. |
getOldPrimaryKey() public method
Возвращает старое значение(я) первичного ключа.
Это значение первичного ключа, которое заполняется в запись после выполнения метода поиска (например, find(), findOne()). Значение остаётся неизменным, даже если атрибут первичного ключа вручную присваивается с другим значением.
| public mixed getOldPrimaryKey ( $asArray = false ) | ||
|---|---|---|
| $asArray | boolean |
Определяет, возвращать ли значение первичного ключа в виде массива. Если |
| return | mixed |
Старое значение первичного ключа. Возвращается массив (имя столбца => значение столбца), если первичный ключ составной или |
| throws | yii\db\Exception |
если у модели AR нет первичного ключа |
getPrimaryKey() public method
Возвращает значение(я) первичного ключа.
| public mixed getPrimaryKey ( $asArray = false ) | ||
|---|---|---|
| $asArray | boolean |
Определяет, возвращать ли значение первичного ключа в виде массива. Если |
| return | mixed |
Значение первичного ключа. Возвращается массив (имя столбца => значение столбца), если первичный ключ составной или |
getScore() public method
| public float getScore ( ) | ||
|---|---|---|
| return | float |
Возвращает значение оценки этой записи при получении через запрос find(). |
index() public static method
| public static string index ( ) | ||
|---|---|---|
| return | string |
Имя индекса, в котором хранится эта запись. |
insert() public method
Вставляет документ в связанный индекс, используя значения атрибутов этой записи.
Этот метод выполняет следующие шаги в указанном порядке:
- вызывает beforeValidate(), если
$runValidationравно true. Если проверка не пройдена, остальные шаги пропускаются; - вызывает afterValidate(), если
$runValidationравно true. - вызывает beforeSave(). Если метод возвращает false, остальные шаги пропускаются;
- вставляет запись в базу данных. Если это не удаётся, остальные шаги пропускаются;
- вызывает afterSave();
На шагах 1, 2, 3 и 5 события EVENT_BEFORE_VALIDATE, EVENT_BEFORE_INSERT, EVENT_AFTER_INSERT и EVENT_AFTER_VALIDATE будут сгенерированы соответствующими методами.
В базу данных будут вставлены только изменённые значения атрибутов.
Если первичный ключ (primaryKey) не задан (null) при вставке, он будет заполнен случайным сгенерированным значением после вставки.
Например, для вставки записи клиента:
$customer = new Customer; $customer->name = $name; $customer->email = $email; $customer->insert();
| public boolean insert ( $runValidation = true, $attributes = null, $options = ['op_type' => 'create'] ) | ||
|---|---|---|
| $runValidation | boolean |
Выполнять ли проверку перед сохранением записи. Если проверка не пройдена, запись не будет вставлена в базу данных. |
| $attributes | array |
Список атрибутов, которые нужно сохранить. По умолчанию null, что означает, что будут сохранены все атрибуты. |
| $options | array |
Параметры, переданные в этом параметре, передаются в elasticsearch в качестве параметров запроса URI. Среди них:
Более подробную информацию об этих параметрах см. в документации elasticsearch. По умолчанию |
| return | boolean |
Возвращает, действительны ли атрибуты и успешно ли вставлена запись. |
instantiate() public static метод
Создаёт экземпляр активной записи.
Этот метод вызывается вместе с populateRecord() методом yii\elasticsearch\ActiveQuery. Он не предназначен для прямого создания новых записей.
Вы можете переопределить этот метод, если экземпляр, который создаётся, зависит от данных строки, которые должны быть заполнены в записи. Например, создавая запись на основе значения столбца, вы можете реализовать так называемое отображение наследования таблицы-одиночки.
| public static static instantiate ( $row ) | ||
|---|---|---|
| $row | массив |
Данные строки для заполнения записи. Этот массив состоит из следующих ключей:
|
| return | static |
Новая созданная активная запись |
mget() public static метод
Получает список записей по их первичным ключам.
| public static массив mget ( массив $primaryKeys, $options = [] ) | ||
|---|---|---|
| $primaryKeys | массив |
Массив значений первичного ключа |
| $options | массив |
Параметры, передаваемые в этот параметр, передаются в elasticsearch в качестве параметров URI запроса. Для получения более подробной информации об этих параметрах, обратитесь к документации elasticsearch. |
| return | массив |
Экземпляры записей или пустой массив, если ничего не найдено |
optimisticLock() public метод
Этот метод не оказывает влияния в Elasticsearch ActiveRecord.
Elasticsearch ActiveRecord использует родное оптимистическое блокирование. Подробнее см. update().
| public void optimisticLock ( ) |
|---|
populateRecord() public static метод
Заполняет объект активной записи данными строки из базы данных/хранилища.
Это внутренний метод, предназначенный для вызова при создании объектов активных записей после извлечения данных из базы данных. Он в основном используется yii\elasticsearch\ActiveQuery для заполнения результатов запроса активными записями.
При ручном вызове этого метода вы должны вызвать afterFind() созданной записи, чтобы вызвать событие afterFind.
| public static void populateRecord ( $record, $row ) | ||
|---|---|---|
| $record | yii\elasticsearch\ActiveRecord |
Запись, подлежащая заполнению. В большинстве случаев это будет экземпляр, созданный instantiate() предварительно. |
| $row | массив |
Значения атрибутов (имя => значение) |
primaryKey() public static метод
Этот метод определяет атрибут, уникально идентифицирующий запись.
Первичный ключ для документов elasticsearch по умолчанию - поле _id. Это поле не является частью атрибутов ActiveRecord, поэтому вы никогда не должны добавлять _id в список атрибутов.
Вы можете переопределить этот метод, чтобы определить имя первичного ключа, когда вы определили отображение пути для поля _id, чтобы оно стало частью _source и, следовательно, частью атрибутов.
Обратите внимание, что elasticsearch поддерживает только один атрибут в качестве первичного ключа. Однако для соответствия сигнатуре ActiveRecordInterface этот метод возвращает массив вместо одной строки.
| public static строка[] primaryKey ( ) | ||
|---|---|---|
| return | строка[] |
Массив атрибутов первичного ключа. Будет использоваться только первый элемент массива. |
primaryKeysByCondition() защищённый статический метод (доступен с версии 2.0.4)
Выполняет быстрый и высокоэффективный запрос скролла/сканирования для получения списка первичных ключей, которые удовлетворяют заданному условию. Если условие является списком первичных ключей (например: ['_id' => ['1', '2', '3']]), запрос не выполняется по соображениям производительности.
См. также:
| protected static массив primaryKeysByCondition ( $condition ) | ||
|---|---|---|
| $condition | массив |
Обратитесь к yii\elasticsearch\ActiveQuery::where(), чтобы узнать, как указать этот параметр |
| return | массив |
Первичные ключи, соответствующие заданным условиям |
setPrimaryKey() public метод
Устанавливает первичный ключ
| public void setPrimaryKey ( $value ) | ||
|---|---|---|
| $value | смешанный тип | |
| throws | yii\base\InvalidCallException |
при неновом состоянии записи |
type() public static метод
| public static строка type ( ) | ||
|---|---|---|
| return | строка |
Имя типа этой записи. |
unlinkAll() public метод
Уничтожает отношение в текущей модели.
Этот метод не поддерживается elasticsearch.
| public void unlinkAll ( $name, $delete = false ) | ||
|---|---|---|
| $name | ||
| $delete | ||
update() public метод
Сохраняет изменения в этой активной записи в ассоциированной таблице базы данных.
Этот метод выполняет следующие шаги в указанном порядке:
- вызывает beforeValidate(), когда
$runValidationравноtrue. Если beforeValidate() возвращаетfalse, остальные шаги будут пропущены; - вызывает afterValidate(), когда
$runValidationравноtrue. Если валидация не пройдена, остальные шаги будут пропущены; - вызывает beforeSave(). Если beforeSave() возвращает
false, остальные шаги будут пропущены; - сохраняет запись в базе данных. Если это не удается, остальные шаги будут пропущены;
- вызывает afterSave();
На шагах 1, 2, 3 и 5 выше будут подняты события EVENT_BEFORE_VALIDATE, EVENT_AFTER_VALIDATE, EVENT_BEFORE_UPDATE и EVENT_AFTER_UPDATE соответствующими методами.
В базу данных будут сохранены только изменённые значения атрибутов.
Например, для обновления записи клиента:
$customer = Customer::findOne($id); $customer->name = $name; $customer->email = $email; $customer->update();
Обратите внимание, что обновление может не повлиять на строку в таблице. В этом случае этот метод вернёт 0. По этой причине вы должны использовать следующий код, чтобы проверить, успешно ли выполнено update():
if ($customer->update() !== false) {
// update successful
} else {
// update failed
}
| public целое|логическое update ( $runValidation = true, $attributeNames = null, $options = [] ) | ||
|---|---|---|
| $runValidation | логическое |
Выполнять ли проверку перед сохранением записи. Если проверка завершится неудачно, запись не будет добавлена в базу данных. |
| $attributeNames | массив |
Список имен атрибутов, которые нужно сохранить. По умолчанию null, что означает, что будут сохранены все атрибуты, загруженные из БД. |
| $options | массив |
Опции, переданные в этом параметре, передаются в Elasticsearch в качестве параметров запроса URI. Среди прочего:
Дополнительную информацию об этих опциях см. в документации Elasticsearch. Следующие параметры специфичны для Yii:
|
| return | целое|логическое |
Количество изменённых строк, или false, если проверка не прошла или метод beforeSave() остановил процесс обновления. |
| throws | yii\db\StaleObjectException |
если оптимистическая блокировка включена, и обновляемые данные устарели. |
| throws | yii\base\InvalidParamException |
если \yii\elasticsearch\version недоступен и оптимистическая блокировка включена. |
| throws | yii\elasticsearch\Exception |
в случае неудачи обновления. |
updateAll() общедоступный статический метод
Обновляет все записи, первичные ключи которых заданы.
Например, чтобы изменить статус на 1 для всех клиентов, у которых статус 2:
Customer::updateAll(['status' => 1], ['status' => 2]);
См. также [[yii\elasticsearch\ActiveRecord::primaryKeysByCondition()]].
| public static целое updateAll ( $attributes, $condition = [] ) | ||
|---|---|---|
| $attributes | массив |
Значения атрибутов (имя-значение) для сохранения в таблице |
| $condition | массив |
Условия, которые будут переданы методу |
| return | целое |
Количество обновлённых строк |
| throws | yii\elasticsearch\Exception |
при ошибке. |
updateAllCounters() общедоступный статический метод
Обновляет все подходящие записи с использованием предоставленных изменений счётчиков и условий.
Например, чтобы добавить 1 к возрасту всех клиентов, у которых статус 2,
Customer::updateAllCounters(['age' => 1], ['status' => 2]);
См. также [[yii\elasticsearch\ActiveRecord::primaryKeysByCondition()]].
| public static целое updateAllCounters ( $counters, $condition = [] ) | ||
|---|---|---|
| $counters | массив |
Счётчики для обновления (имя атрибута => приращение значения). Используйте отрицательные значения, если нужно уменьшить счётчики. |
| $condition | массив |
Условия, которые будут переданы методу |
| return | целое |
Количество обновлённых строк |
| throws | yii\elasticsearch\Exception |
при ошибке. |
updateInternal() защищённый метод
См. также update().
| protected целое|false updateInternal ( $attributes = null, $options = [] ) | ||
|---|---|---|
| $attributes | массив |
Атрибуты для обновления |
| $options | массив |
Опции, переданные в этом параметре, передаются в Elasticsearch в качестве параметров запроса URI. Подробнее см. update(). |
| return | целое|false |
Количество изменённых строк, или false, если beforeSave() остановил процесс обновления. |
| throws | yii\db\StaleObjectException |
если оптимистическая блокировка включена, и обновляемые данные устарели. |
| throws | yii\base\InvalidParamException |
если \yii\elasticsearch\version недоступен и оптимистическая блокировка включена. |
| throws | yii\elasticsearch\Exception |
в случае неудачи обновления. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-elasticsearch-activerecord.html