Класс yii\redis\ActiveRecord
| Наследование | yii\redis\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-redis/blob/master/ActiveRecord.php |
ActiveRecord — базовый класс для классов, представляющих реляционные данные в виде объектов.
Этот класс реализует паттерн ActiveRecord для хранилища ключей-значений redis.
Для определения записи подкласс должен, как минимум, реализовать метод attributes() для определения атрибутов. Первичный ключ может быть определён через primaryKey(), который по умолчанию равен id, если не указано иное.
Следующий пример модели с названием Customer:
class Customer extends \yii\redis\ActiveRecord
{
public function attributes()
{
return ['id', 'name', 'address', 'registration_date'];
}
}
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $activeValidators | yii\validators\Validator[] | Валидаторы, применимые к текущему $сценарий. | yii\base\Model |
| $attributes | массив | Значения атрибутов (имя => значение). | yii\base\Model |
| $behaviors | yii\base\Behavior[] | Список поведений, прикрепленных к этому компоненту | yii\base\Component |
| $dirtyAttributes | массив | Изменённые значения атрибутов (пар имя-значение) | yii\db\BaseActiveRecord |
| $errors | массив | Ошибки для всех атрибутов или указанного атрибута. | yii\base\Model |
| $firstErrors | массив | Первые ошибки. | yii\base\Model |
| $isNewRecord | boolean | Является ли запись новой и должна ли она быть вставлена при вызове save(). | yii\db\BaseActiveRecord |
| $iterator | ArrayIterator | Итератор для обхода элементов в списке. | yii\base\Model |
| $oldAttributes | массив | Старые значения атрибутов (пар имя-значение) | yii\db\BaseActiveRecord |
| $oldPrimaryKey | смешанный тип | Старое значение первичного ключа. | yii\db\BaseActiveRecord |
| $primaryKey | смешанный тип | Значение первичного ключа. | yii\db\BaseActiveRecord |
| $relatedRecords | массив | Массив связанных записей, индексированных именами отношений. | yii\db\BaseActiveRecord |
| $сценарий | строка | Сценарий, в котором находится эта модель. | yii\base\Model |
| $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 |
| attachBehavior() | Присоединяет поведение к данному компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| attributeHints() | Возвращает подсказки к атрибутам. | yii\base\Model |
| attributeLabels() | Возвращает метки атрибутов. | yii\base\Model |
| attributes() | Возвращает список всех имён атрибутов модели. | yii\redis\ActiveRecord |
| beforeDelete() | Этот метод вызывается перед удалением записи. | yii\db\BaseActiveRecord |
| beforeSave() | Этот метод вызывается в начале вставки или обновления записи. | yii\db\BaseActiveRecord |
| beforeValidate() | Этот метод вызывается перед началом валидации. | yii\base\Model |
| behaviors() | Возвращает список поведений, которые должен иметь этот компонент. | yii\base\Component |
| buildKey() | Создаёт нормализованный ключ из заданного значения первичного ключа. | yii\redis\ActiveRecord |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\db\BaseActiveRecord |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\db\BaseActiveRecord |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| clearErrors() | Удаляет ошибки для всех атрибутов или одного атрибута. | yii\base\Model |
| createValidators() | Создаёт объекты валидаторов на основе правил валидации, указанных в rules(). | yii\base\Model |
| delete() | Удаляет строку таблицы, соответствующую этому активному записям. | yii\db\BaseActiveRecord |
| deleteAll() | Удаляет строки в таблице, используя предоставленные условия. | yii\redis\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\redis\ActiveQueryInterface для целей запроса. | yii\redis\ActiveRecord |
| findAll() | Возвращает список активных записей, которые соответствуют указанному значению первичного ключа(ей) или набору значений столбцов. | yii\db\BaseActiveRecord |
| findOne() | Возвращает единственный активный объект записи по первичному ключу или массиву значений столбцов. | yii\db\BaseActiveRecord |
| formName() | Возвращает имя формы, которое должен использовать этот класс модели. | yii\base\Model |
| generateAttributeLabel() | Генерирует понятную пользователю метку атрибута на основе имени атрибута. | yii\base\Model |
| getActiveValidators() | Возвращает валидаторы, применимые к текущему $scenario. | 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\redis\ActiveRecord |
| getDirtyAttributes() | Возвращает значения атрибутов, которые были изменены с момента их последней загрузки или сохранения. | yii\db\BaseActiveRecord |
| getErrors() | Возвращает ошибки для всех атрибутов или одного атрибута. | yii\base\Model |
| getFirstError() | Возвращает первую ошибку указанного атрибута. | yii\base\Model |
| getFirstErrors() | Возвращает первую ошибку для каждого атрибута в модели. | yii\base\Model |
| getIsNewRecord() | Возвращает значение, указывающее, является ли текущая запись новой. | yii\db\BaseActiveRecord |
| getIterator() | Возвращает итератор для обхода атрибутов в модели. | yii\base\Model |
| getOldAttribute() | Возвращает старое значение указанного атрибута. | yii\db\BaseActiveRecord |
| getOldAttributes() | Возвращает старые значения атрибутов. | yii\db\BaseActiveRecord |
| getOldPrimaryKey() | Возвращает старое(ие) значение(я) первичного ключа. | yii\db\BaseActiveRecord |
| getPrimaryKey() | Возвращает значение(я) первичного ключа. | yii\db\BaseActiveRecord |
| getRelatedRecords() | Возвращает все загруженные связанные записи. | yii\db\BaseActiveRecord |
| getRelation() | Возвращает объект отношения с заданным именем. | yii\db\BaseActiveRecord |
| getScenario() | Возвращает сценарий, в котором используется эта модель. | yii\base\Model |
| 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 |
| init() | Инициализирует объект. | yii\db\BaseActiveRecord |
| insert() | Вставляет запись в базу данных, используя значения атрибутов этой записи. | yii\redis\ActiveRecord |
| instantiate() | Создает экземпляр активной записи. | yii\db\BaseActiveRecord |
| isAttributeActive() | Возвращает значение, указывающее, является ли атрибут активным в текущем сценарии. | yii\base\Model |
| isAttributeChanged() | Возвращает значение, указывающее, был ли изменен атрибут с указанным именем. | yii\db\BaseActiveRecord |
| isAttributeRequired() | Возвращает значение, указывающее, является ли атрибут обязательным. | yii\base\Model |
| isAttributeSafe() | Возвращает значение, указывающее, является ли атрибут безопасным для массовых назначений. | yii\base\Model |
| isPrimaryKey() | Возвращает значение, указывающее, представляет ли данный набор атрибутов первичный ключ для этой модели. | yii\db\BaseActiveRecord |
| isRelationPopulated() | Проверяет, было ли отношение с указанным именем заполнено записями. | yii\db\BaseActiveRecord |
| keyPrefix() | Объявляет префикс ключа, представляющего ключи, которые хранят эти записи в Redis. | yii\redis\ActiveRecord |
| link() | Устанавливает связь между двумя моделями. | yii\db\BaseActiveRecord |
| load() | Заполняет модель входными данными. | yii\base\Model |
| loadMultiple() | Заполняет набор моделей данными от пользователя. | yii\base\Model |
| markAttributeDirty() | Помечает атрибут грязным. | yii\db\BaseActiveRecord |
| 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() | Возвращает имя столбца, который хранит версию блокировки для реализации опенмистической блокировки. | yii\db\BaseActiveRecord |
| populateRecord() | Заполняет объект активной записи, используя строку данных из базы данных/хранилища. | yii\db\BaseActiveRecord |
| populateRelation() | Заполняет указанное отношение связанными записями. | yii\db\BaseActiveRecord |
| primaryKey() | Возвращает имя(на) первичного ключа для этого класса AR. | yii\redis\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 |
| setScenario() | Устанавливает сценарий для модели. | yii\base\Model |
| toArray() | Преобразует модель в массив. | yii\base\ArrayableTrait |
| trigger() | Вызывает событие. | yii\base\Component |
| unlink() | Уничтожает связь между двумя моделями. | yii\db\BaseActiveRecord |
| unlinkAll() | Уничтожает связь в текущей модели. | yii\db\BaseActiveRecord |
| update() | Сохраняет изменения в этой активной записи в связанной таблице базы данных. | yii\db\BaseActiveRecord |
| updateAll() | Обновляет всю таблицу, используя предоставленные значения атрибутов и условия. | yii\redis\ActiveRecord |
| updateAllCounters() | Обновляет всю таблицу, используя предоставленные изменения счетчиков и условия. | yii\redis\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 |
| resolveFields() | Определяет, какие поля могут быть возвращены методом toArray(). | yii\base\ArrayableTrait |
| updateInternal() | yii\db\BaseActiveRecord |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| 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 |
Подробное описание методов
attributes() метод public
Возвращает список всех имён атрибутов модели.
Этот метод должен быть переопределен дочерними классами для определения доступных атрибутов.
| public массив attributes ( ) | ||
|---|---|---|
| return | массив |
Список имён атрибутов. |
buildKey() метод public static
Строит нормализованный ключ из заданного значения первичного ключа.
| public static строка buildKey ( $key ) | ||
|---|---|---|
| $key | смешанный тип |
Ключ, который необходимо нормализовать |
| return | строка |
Сгенерированный ключ |
deleteAll() метод public static
Удаляет строки в таблице с помощью предоставленных условий.
ВНИМАНИЕ: Если вы не укажете никаких условий, этот метод удалит ВСЕ строки в таблице.
Например, чтобы удалить всех клиентов, статус которых равен 3:
Customer::deleteAll(['status' => 3]);
| public static целое число deleteAll ( $condition = null ) | ||
|---|---|---|
| $condition | массив |
Условия, которые будут помещены в часть WHERE SQL-запроса DELETE. Обратитесь к yii\redis\ActiveQuery::where() для получения информации о том, как указать этот параметр. |
| return | целое число |
Количество удалённых строк |
find() метод public static
Создаёт экземпляр \yii\redis\ActiveQueryInterface для целей запроса.
Полученный экземпляр \yii\redis\ActiveQueryInterface может быть далее настроен вызовом методов, определённых в \yii\redis\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\redis\ActiveQuery find ( ) | ||
|---|---|---|
| return | yii\redis\ActiveQuery |
Новый созданный экземпляр yii\redis\ActiveQuery. |
getDb() метод public static
Возвращает подключение к базе данных, используемое этим классом AR.
По умолчанию в качестве подключения к базе данных используется компонент "redis" приложения. Вы можете переопределить этот метод, если хотите использовать другое подключение к базе данных.
| public static yii\redis\Connection getDb ( ) | ||
|---|---|---|
| return | yii\redis\Connection |
Подключение к базе данных, используемое этим классом AR. |
insert() метод public
Вставляет запись в базу данных, используя значения атрибутов этой записи.
Пример использования:
$customer = new Customer; $customer->name = $name; $customer->email = $email; $customer->insert();
| public логическое значение insert ( $runValidation = true, $attributes = null ) | ||
|---|---|---|
| $runValidation | логическое значение |
Выполнять ли валидацию (вызов validate()) перед сохранением записи. По умолчанию |
| $attributes | массив |
Список атрибутов, которые необходимо сохранить. По умолчанию |
| return | логическое значение |
Являются ли атрибуты валидными и запись успешно вставлена. |
keyPrefix() метод public static
Объявляет префикс ключа, который представляет ключи, хранящие эти записи в redis.
По умолчанию этот метод возвращает имя класса в качестве имени таблицы, вызывая yii\helpers\Inflector::camel2id(). Например, 'Customer' становится 'customer', а 'OrderItem' становится 'order_item'. Вы можете переопределить этот метод, если вам нужно другое именование ключей.
| public static строка keyPrefix ( ) | ||
|---|---|---|
| return | строка |
Префикс, который следует применять ко всем ключам AR |
primaryKey() метод public static
Возвращает имя(на) первичного ключа для этого класса AR.
Этот метод должен быть переопределен дочерними классами для определения первичного ключа.
Обратите внимание, что массив должен возвращаться даже в случае одного первичного ключа.
| public static строка[] primaryKey ( ) | ||
|---|---|---|
| return | строка[] |
Первичные ключи этой записи. |
updateAll() метод public static
Обновляет всю таблицу, используя предоставленные значения атрибутов и условия.
Например, чтобы изменить статус на 1 для всех клиентов, статус которых 2:
Customer::updateAll(['status' => 1], ['id' => 2]);
| public static целое число updateAll ( $attributes, $condition = null ) | ||
|---|---|---|
| $attributes | массив |
Значения атрибутов (имя-значение) для сохранения в таблице |
| $condition | массив |
Условия, которые будут помещены в часть WHERE SQL-запроса UPDATE. Обратитесь к yii\redis\ActiveQuery::where() для получения информации о том, как указать этот параметр. |
| return | целое число |
Количество обновлённых строк |
updateAllCounters() метод public static
Обновляет всю таблицу, используя предоставленные изменения счётчиков и условия.
Например, чтобы увеличить возраст всех клиентов на 1,
Customer::updateAllCounters(['age' => 1]);
| public static целое число updateAllCounters ( $counters, $condition = null ) | ||
|---|---|---|
| $counters | массив |
Счётчики для обновления (имя атрибута => значение приращения). Используйте отрицательные значения, если хотите уменьшить счётчики. |
| $condition | массив |
Условия, которые будут помещены в часть WHERE SQL-запроса UPDATE. Обратитесь к yii\redis\ActiveQuery::where() для получения информации о том, как указать этот параметр. |
| return | целое число |
Количество обновлённых строк |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-redis-activerecord.html