Spec-Zone.ru › Yii 2.0

Класс 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() публичный метод

Удаляет строку таблицы, соответствующую этому активному записям.

Этот метод выполняет следующие шаги в указанном порядке:

  1. вызов beforeDelete(). Если метод возвращает false, он пропустит остальные шаги;
  2. удаление записи из базы данных;
  3. вызов afterDelete().

На шагах 1 и 3 выше события с именами EVENT_BEFORE_DELETE и EVENT_AFTER_DELETE будут вызваны соответствующими методами.

public integer|boolean delete ( $options = [] )
$options array

Параметры, предоставленные в этом параметре, передаются в Elasticsearch в качестве параметров запроса URI. Среди прочих:

  • routing определяет размещение фрагментов для этой записи.
  • parent задавая primaryKey другой записи, это определяет родительско-дочерние отношения
  • timeout задаёт таймаут ожидания доступности фрагмента.
  • replication тип репликации для операции удаления/индексации (синхронный или асинхронный).
  • consistency согласованность записи при операции индексации/удаления.
  • refresh обновляет соответствующие первичные и реплицированные фрагменты (а не весь индекс) сразу после выполнения операции, чтобы обновлённый документ отображался в результатах поиска немедленно.

Для получения более подробной информации об этих параметрах, обратитесь к документации Elasticsearch.

Следующие параметры относятся к Yii:

  • optimistic_locking установите значение в true для включения оптимистической блокировки, чтобы предотвратить обновление, когда запись изменилась с момента загрузки из базы данных. Yii установит параметр version в значение, хранящееся в \yii\elasticsearch\version. Подробности см. в документации Elasticsearch.

    Убедитесь, что запись была получена с \yii\elasticsearch\version. Это справедливо только для записей, полученных с помощью get() и mget() по умолчанию. Для обычных запросов поле _version необходимо получить явно.

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

Условия, которые будут переданы методу where() при построении запроса. Обратитесь к yii\elasticsearch\ActiveQuery::where() для получения информации о том, как указать этот параметр.

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, соответствующий условию, или null, если ничего не найдено.

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

Определяет, возвращать ли значение первичного ключа в виде массива. Если true, возвращаемое значение будет массивом, где имя столбца является ключом, а значение столбца — значением. Если это false (по умолчанию), для несоставного первичного ключа будет возвращено скалярное значение.

return mixed

Старое значение первичного ключа. Возвращается массив (имя столбца => значение столбца), если первичный ключ составной или $asArray равно true. В противном случае возвращается строка (null возвращается, если значение ключа null).

throws yii\db\Exception

если у модели AR нет первичного ключа

getPrimaryKey() public method

Возвращает значение(я) первичного ключа.

public mixed getPrimaryKey ( $asArray = false )
$asArray boolean

Определяет, возвращать ли значение первичного ключа в виде массива. Если true, возвращаемое значение будет массивом с именами столбцов в качестве ключей и значениями столбцов. Обратите внимание, что для составных первичных ключей всегда возвращается массив независимо от этого параметра.

return mixed

Значение первичного ключа. Возвращается массив (имя столбца => значение столбца), если первичный ключ составной или $asArray равно true. В противном случае возвращается строка (null возвращается, если значение ключа null).

getScore() public method

public float getScore ( )
return float

Возвращает значение оценки этой записи при получении через запрос find().

index() public static method

public static string index ( )
return string

Имя индекса, в котором хранится эта запись.

insert() public method

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

Этот метод выполняет следующие шаги в указанном порядке:

  1. вызывает beforeValidate(), если $runValidation равно true. Если проверка не пройдена, остальные шаги пропускаются;
  2. вызывает afterValidate(), если $runValidation равно true.
  3. вызывает beforeSave(). Если метод возвращает false, остальные шаги пропускаются;
  4. вставляет запись в базу данных. Если это не удаётся, остальные шаги пропускаются;
  5. вызывает 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. Среди них:

  • routing определяет размещение фрагмента этой записи.
  • parent задаёт первичный ключ другой записи, определяя родительско-дочерние отношения
  • timestamp указывает временную метку для хранения вместе с документом. По умолчанию — время индексирования.

Более подробную информацию об этих параметрах см. в документации elasticsearch.

По умолчанию op_type задан как create.

return boolean

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

instantiate() public static метод

Создаёт экземпляр активной записи.

Этот метод вызывается вместе с populateRecord() методом yii\elasticsearch\ActiveQuery. Он не предназначен для прямого создания новых записей.

Вы можете переопределить этот метод, если экземпляр, который создаётся, зависит от данных строки, которые должны быть заполнены в записи. Например, создавая запись на основе значения столбца, вы можете реализовать так называемое отображение наследования таблицы-одиночки.

public static static instantiate ( $row )
$row массив

Данные строки для заполнения записи. Этот массив состоит из следующих ключей:

  • _source: относится к атрибутам записи.
  • _type: тип, в котором хранится эта запись.
  • _index: индекс, в котором хранится эта запись.
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']]), запрос не выполняется по соображениям производительности.

См. также:

  • updateAll()
  • updateAllCounters()
  • deleteAll()
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 метод

Сохраняет изменения в этой активной записи в ассоциированной таблице базы данных.

Этот метод выполняет следующие шаги в указанном порядке:

  1. вызывает beforeValidate(), когда $runValidation равно true. Если beforeValidate() возвращает false, остальные шаги будут пропущены;
  2. вызывает afterValidate(), когда $runValidation равно true. Если валидация не пройдена, остальные шаги будут пропущены;
  3. вызывает beforeSave(). Если beforeSave() возвращает false, остальные шаги будут пропущены;
  4. сохраняет запись в базе данных. Если это не удается, остальные шаги будут пропущены;
  5. вызывает 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. Среди прочего:

  • routing определить размещение фрагментов для этой записи.
  • parent задавая первичный ключ другой записи, это определяет родительско-дочерние отношения
  • timeout таймаут ожидания доступности фрагмента.
  • replication тип репликации для операции удаления/индексации (синхронный или асинхронный).
  • consistency согласованность записи при операции индексации/удаления.
  • refresh немедленно обновляет соответствующие первичные и реплицированные фрагменты (не весь индекс), после того как операция произойдёт, так что обновлённый документ сразу появится в результатах поиска.
  • detect_noop этот параметр станет частью тела запроса и предотвратит обновление индекса, когда ничего не изменилось.

Дополнительную информацию об этих опциях см. в документации Elasticsearch.

Следующие параметры специфичны для Yii:

  • optimistic_locking установите это в true чтобы включить оптимистическую блокировку, предотвратите обновление, если запись изменилась с момента загрузки из базы данных. Yii установит параметр version в значение, хранящееся в \yii\elasticsearch\version. Подробнее см. в документации Elasticsearch.

    Убедитесь, что запись была извлечена с \yii\elasticsearch\version ранее. Это выполняется только для записей, извлеченных с помощью get() и mget() по умолчанию. Для обычных запросов поле _version необходимо явно извлечь.

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 массив

Условия, которые будут переданы методу where() при построении запроса. Обратитесь к yii\elasticsearch\ActiveQuery::where() для указания этого параметра.

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 массив

Условия, которые будут переданы методу where() при построении запроса. Обратитесь к yii\elasticsearch\ActiveQuery::where() для указания этого параметра.

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

Spec-Zone.ru

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