Абстрактный класс yii\db\BaseActiveRecord
| Наследование | 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 |
| Подклассы | yii\db\ActiveRecord, yii\elasticsearch\ActiveRecord, yii\mongodb\ActiveRecord, yii\mongodb\file\ActiveRecord, yii\redis\ActiveRecord, yii\sphinx\ActiveRecord |
| Доступен с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/db/BaseActiveRecord.php |
ActiveRecord — базовый класс для классов, представляющих реляционные данные в виде объектов.
См. yii\db\ActiveRecord для конкретной реализации.
Открытые свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $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 |
| $firstErrors | массив | Первые ошибки. | yii\base\Model |
| $isNewRecord | логическое | Является ли запись новой и должна ли она быть вставлена при вызове 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 |
| $scenario | строка | Сценарий, в котором находится эта модель. | 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\db\ActiveRecordInterface |
| 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\db\BaseActiveRecord |
| deleteAll() | Удаляет строки в таблице, используя предоставленные условия. | yii\db\BaseActiveRecord |
| detachBehavior() | Открепляет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Открепляет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. | yii\base\Component |
| equals() | Возвращает значение, указывающее, является ли данная активная запись такой же, как текущая. | yii\db\BaseActiveRecord |
| extraFields() | Возвращает список полей, которые можно дополнительно расширить и вернуть методом toArray(). | yii\db\BaseActiveRecord |
| fields() | Возвращает список полей, которые должны возвращаться по умолчанию методом toArray(), если не указаны определённые поля. | yii\db\BaseActiveRecord |
| find() | Создает экземпляр yii\db\ActiveQueryInterface для целей запроса. | yii\db\ActiveRecordInterface |
| 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\db\ActiveRecordInterface |
| 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\db\ActiveRecordInterface |
| 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 |
| 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\db\ActiveRecordInterface |
| 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\db\BaseActiveRecord |
| updateAllCounters() | Обновляет всю таблицу, используя предоставленные изменения счётчиков и условия. | yii\db\BaseActiveRecord |
| 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 |
Подробности свойств
$dirtyAttributes общедоступное только для чтения свойство
Изменённые значения атрибутов (пары имя-значение)
public array getDirtyAttributes ( $names = null )
$isNewRecord общедоступное свойство
Является ли запись новой и должна ли она быть вставлена при вызове save().
public boolean getIsNewRecord ( )
public void setIsNewRecord ( $value )
$oldAttributes общедоступное свойство
Старые значения атрибутов (пары имя-значение)
public array getOldAttributes ( )
public void setOldAttributes ( $values )
$oldPrimaryKey общедоступное только для чтения свойство
Старое значение первичного ключа. Возвращается массив (имя столбца => значение столбца), если первичный ключ составной или $asArray является true. В противном случае возвращается строка (null возвращается, если значение ключа null).
public mixed getOldPrimaryKey ( $asArray = false )
$primaryKey общедоступное только для чтения свойство
Значение первичного ключа. Возвращается массив (имя столбца => значение столбца), если первичный ключ составной или $asArray является true. В противном случае возвращается строка (null возвращается, если значение ключа null).
public mixed getPrimaryKey ( $asArray = false )
$relatedRecords общедоступное только для чтения свойство
Массив связанных записей, индексированных именами отношений.
public array getRelatedRecords ( )
Подробное описание методов
__get() общедоступный метод
Магический метод-геттер PHP.
Этот метод переопределен для того, чтобы атрибуты и связанные объекты можно было получить как свойства.
См. также getAttribute().
| общедоступный mixed __get ( $name ) | ||
|---|---|---|
| $name | строка |
Имя свойства |
| возвращает | mixed |
Значение свойства |
| бросает | yii\base\InvalidParamException |
если имя отношения неверное |
__isset() общедоступный метод
Проверяет, является ли значение свойства равным null.
Этот метод переопределяет родительскую реализацию, проверяя, является ли атрибут с заданным именем null или нет.
| общедоступный булево __isset ( $name ) | ||
|---|---|---|
| $name | строка |
Имя свойства или имя события |
| возвращает | булево |
Является ли значение свойства равным null |
__set() общедоступный метод
Магический метод-сеттер PHP.
Этот метод переопределен для того, чтобы атрибуты AR можно было получить как свойства.
| общедоступный void __set ( $name, $value ) | ||
|---|---|---|
| $name | строка |
Имя свойства |
| $value | mixed |
Значение свойства |
__unset() общедоступный метод
Устанавливает свойство компонента в значение null.
Этот метод переопределяет родительскую реализацию, очищая указанное значение атрибута.
| общедоступный void __unset ( $name ) | ||
|---|---|---|
| $name | строка |
Имя свойства или имя события |
afterDelete() общедоступный метод
Этот метод вызывается после удаления записи.
Базовая реализация поднимает событие EVENT_AFTER_DELETE. Вы можете переопределить этот метод для выполнения постобработки после удаления записи. Убедитесь, что вы вызываете родительскую реализацию, чтобы событие поднималось должным образом.
| общедоступный void afterDelete ( ) |
|---|
afterFind() общедоступный метод
Этот метод вызывается при создании объекта AR и его заполнении результатом запроса.
Базовая реализация вызовет событие EVENT_AFTER_FIND. При переопределении этого метода убедитесь, что вы вызываете родительскую реализацию, чтобы гарантировать срабатывание события.
| общедоступный void afterFind ( ) |
|---|
afterRefresh() общедоступный метод (доступно начиная с версии 2.0.8)
Этот метод вызывается при обновлении объекта AR.
Базовая реализация вызовет событие EVENT_AFTER_REFRESH. При переопределении этого метода убедитесь, что вы вызываете родительскую реализацию, чтобы гарантировать срабатывание события.
| общедоступный void afterRefresh ( ) |
|---|
afterSave() общедоступный метод
Этот метод вызывается в конце вставки или обновления записи.
Базовая реализация вызовет событие EVENT_AFTER_INSERT, когда $insert является true, или событие EVENT_AFTER_UPDATE, если $insert равно false. Используемый класс события — yii\db\AfterSaveEvent. При переопределении этого метода обязательно вызовите родительскую реализацию, чтобы гарантировать срабатывание события.
| общедоступный void afterSave ( $insert, $changedAttributes ) | ||
|---|---|---|
| $insert | булево |
Указывает, вызывался ли метод при вставке записи. Если |
| $changedAttributes | массив |
Старые значения атрибутов, которые были изменены и сохранены. Вы можете использовать этот параметр для выполнения действий, основанных на внесённых изменениях, например, отправки письма, когда изменился пароль, или реализации аудиторского следа, отслеживающего все изменения. Обратите внимание, что по умолчанию автоматического преобразования типов не выполняется. Для облегчения преобразования типов атрибутов можно использовать yii\behaviors\AttributeTypecastBehavior. См. http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#attributes-typecasting. |
beforeDelete() общедоступный метод
Этот метод вызывается перед удалением записи.
Базовая реализация поднимает событие EVENT_BEFORE_DELETE. При переопределении этого метода убедитесь, что вы вызываете родительскую реализацию, как показано ниже:
public function beforeDelete()
{
if (!parent::beforeDelete()) {
return false;
}
// ...custom code here...
return true;
}
| общедоступный булево beforeDelete ( ) | ||
|---|---|---|
| возвращает | булево |
Следует ли удалить запись. По умолчанию |
beforeSave() общедоступный метод
Этот метод вызывается в начале вставки или обновления записи.
Базовая реализация вызовет событие EVENT_BEFORE_INSERT, когда $insert равно true, или событие EVENT_BEFORE_UPDATE, если $insert равно false. При переопределении этого метода убедитесь, что вы вызываете родительскую реализацию, как показано ниже:
public function beforeSave($insert)
{
if (!parent::beforeSave($insert)) {
return false;
}
// ...custom code here...
return true;
}
| общедоступный булево beforeSave ( $insert ) | ||
|---|---|---|
| $insert | булево |
Указывает, вызывался ли метод при вставке записи. Если |
| возвращает | булево |
Продолжить ли вставку или обновление. Если |
canGetProperty() общедоступный метод
Возвращает значение, указывающее, может ли свойство быть прочитано.
Свойство может быть прочитано, если:
- класс имеет метод-геттер, связанный с указанным именем (в этом случае регистр имени свойства не учитывается);
- класс имеет переменную-член с указанным именем (если
$checkVarsравно true); - прикреплённый поведение имеет свойство для чтения с заданным именем (если
$checkBehaviorsравно true).
| общедоступный булево canGetProperty ( $name, $checkVars = true, $checkBehaviors = true ) | ||
|---|---|---|
| $name | строка |
Имя свойства |
| $checkVars | булево |
Обрабатывать ли переменные-члены как свойства |
| $checkBehaviors | булево |
Обрабатывать ли свойства поведения как свойства этого компонента |
| возвращает | булево |
Может ли свойство быть прочитано |
canSetProperty() общедоступный метод
Возвращает значение, указывающее, может ли свойство быть установлено.
Свойство может быть записано, если:
- класс имеет метод-сеттер, связанный с указанным именем (в этом случае регистр имени свойства не учитывается);
- класс имеет переменную-член с указанным именем (если
$checkVarsравно true); - прикреплённый поведение имеет свойство для записи с заданным именем (если
$checkBehaviorsравно true).
| public boolean canSetProperty ( $name, $checkVars = true, $checkBehaviors = true ) | ||
|---|---|---|
| $name | string |
Имя свойства |
| $checkVars | boolean |
Учитывать ли переменные-члены как свойства |
| $checkBehaviors | boolean |
Учитывать ли свойства поведения как свойства этого компонента |
| return | boolean |
Можно ли задать свойство |
createRelationQuery() защищённый метод (доступен с версии 2.0.12)
Создаёт экземпляр запроса для has-one или has-many отношения.
См. также:
| protected yii\db\ActiveQueryInterface createRelationQuery ( $class, $link, $multiple ) | ||
|---|---|---|
| $class | string |
Имя класса связанной записи. |
| $link | array |
Ограничение первичного-внешнего ключа. |
| $multiple | boolean |
Представляет ли запрос отношение более чем к одной записи. |
| return | yii\db\ActiveQueryInterface |
Объект реляционного запроса. |
delete() публичный метод
Удаляет строку таблицы, соответствующую этой активной записи.
Этот метод выполняет следующие шаги в указанном порядке:
- вызывает beforeDelete(). Если метод возвращает
false, он пропустит остальные шаги; - удаляет запись из базы данных;
- вызывает afterDelete().
На шагах 1 и 3 выше события, имеющие имена EVENT_BEFORE_DELETE и EVENT_AFTER_DELETE, будут подняты соответствующими методами.
| public integer|false delete ( ) | ||
|---|---|---|
| return | integer|false |
Количество строк, удалённых, или |
| throws | yii\db\StaleObjectException |
если включена опция оптимистической блокировки и удаляемые данные устарели. |
| throws | yii\db\Exception |
в случае неудачи удаления. |
deleteAll() публичный статический метод
Удаляет строки в таблице, используя заданные условия.
ПРЕДУПРЕЖДЕНИЕ: Если вы не укажете никаких условий, этот метод удалит ВСЕ строки в таблице.
Например, чтобы удалить всех клиентов, статус которых равен 3:
Customer::deleteAll('status = 3');
| public static integer deleteAll ( $condition = null ) | ||
|---|---|---|
| $condition | string|array |
Условия, которые будут помещены в часть WHERE SQL-запроса DELETE. Обратитесь к yii\db\Query::where(), чтобы узнать, как указать этот параметр. |
| return | integer |
Количество строк, удалённых |
| throws | yii\base\NotSupportedException |
если не переопределено. |
equals() публичный метод
Возвращает значение, указывающее, является ли заданная активная запись такой же, как текущая.
Сравнение производится путём сравнения имён таблиц и значений первичных ключей двух активных записей. Если одна из записей является новой, они также считаются неравными.
| public boolean equals ( $record ) | ||
|---|---|---|
| $record | yii\db\ActiveRecordInterface |
Запись для сравнения |
| return | boolean |
Являются ли две активные записи ссылками на одну и ту же строку в одной и той же таблице базы данных. |
extraFields() публичный метод
Возвращает список полей, которые можно дополнительно расширить и получить с помощью toArray().
Этот метод похож на fields(), за исключением того, что список полей, возвращаемых этим методом, по умолчанию не возвращается toArray(). Только когда имена полей для расширения явно указаны при вызове toArray(), их значения будут экспортированы.
По умолчанию возвращает пустой массив.
Вы можете переопределить этот метод, чтобы вернуть список расширяемых полей на основе некоторой контекстной информации (например, текущего пользователя приложения).
По умолчанию возвращает имена отношений, которые были заполнены в эту запись.
| public array extraFields ( ) | ||
|---|---|---|
| return | array |
Список имён расширяемых полей или определений полей. Обратитесь к fields() по формату возвращаемого значения. |
fields() публичный метод
Возвращает список полей, которые должны по умолчанию возвращаться методом toArray(), когда не указаны конкретные поля.
Поле — это именованный элемент в возвращаемом массиве методом toArray().
Этот метод должен возвращать массив имён полей или определений полей. Если это имена, имя поля будет обрабатываться как имя свойства объекта, значение которого будет использоваться как значение поля. Если это определения, ключ массива должен быть именем поля, а значение — соответствующим определением поля, которое может быть либо именем свойства PHP, либо PHP-функцией, возвращающей соответствующее значение поля. Сигнатура вызываемой функции должна быть:
function ($model, $field) {
// return field value
}
Например, следующий код объявляет четыре поля:
-
email: имя поля такое же, как имя свойстваemail; -
firstNameиlastName: имена полейfirstNameиlastName, а их значения получены из свойствfirst_nameиlast_name; -
fullName: имя поляfullName. Его значение получается путём конкатенацииfirst_nameиlast_name.
return [
'email',
'firstName' => 'first_name',
'lastName' => 'last_name',
'fullName' => function ($model) {
return $model->first_name . ' ' . $model->last_name;
},
];
В этом методе вы также можете возвращать различные списки полей, основываясь на некоторой контекстной информации. Например, в зависимости от $scenario или привилегий текущего пользователя приложения вы можете возвращать различные наборы видимых полей или отфильтровывать некоторые поля.
По умолчанию этот метод возвращает attributes(), индексированные теми же именами атрибутов.
По умолчанию возвращает имена столбцов, значения которых были заполнены в эту запись.
| public array fields ( ) | ||
|---|---|---|
| return | array |
Список имён полей или определений полей. |
findAll() публичный статический метод
Возвращает список моделей активных записей, которые соответствуют указанному значению(ям) первичного ключа или набору значений столбцов.
Метод принимает:
- скалярное значение (целое или строковое): запрос по одному значению первичного ключа и возвращает массив, содержащий соответствующую запись (или пустой массив, если не найдено).
- массив без ассоциативных пар: запрос по списку значений первичных ключей и возвращает соответствующие записи (или пустой массив, если не найдено). Обратите внимание, что пустые условия приведут к пустому результату, так как они будут интерпретироваться как поиск по первичным ключам, а не пустому
WHEREусловию. - ассоциативный массив пар имя-значение: запрос по набору значений атрибутов и возвращает массив записей, соответствующих всем им (или пустой массив, если не найдено). Обратите внимание, что
['id' => 1, 2]обрабатывается как массив без ассоциативных пар.
Этот метод автоматически вызовет метод all() и вернёт массив экземпляров ActiveRecord.
Примечание: Поскольку это метод сокращенного синтаксиса, использование более сложных условий, таких как ['!=', '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 или пустой массив, если ничего не найдено. |
findByCondition() защищённый статический метод
Находит экземпляр(ы) ActiveRecord по заданному условию.
Этот метод вызывается внутри findOne() и findAll().
| protected static yii\db\ActiveQueryInterface findByCondition ( $condition ) | ||
|---|---|---|
| $condition | mixed |
Обратитесь к findOne() для объяснения этого параметра |
| return | yii\db\ActiveQueryInterface |
Новый созданный экземпляр ActiveQuery. |
| throws | yii\base\InvalidConfigException |
если первичный ключ не определён |
findOne() публичный статический метод
Возвращает один экземпляр модели active record по первичному ключу или набору значений столбцов.
Метод принимает:
- скалярное значение (целое число или строка): запрос по значению одного первичного ключа и возвращает соответствующую запись (или
nullесли не найдено). - массив без ассоциативных ключей: запрос по списку значений первичного ключа и возвращает первую запись (или
nullесли не найдено). - ассоциативный массив пар имя-значение: запрос по набору значений атрибутов и возвращает единственную запись, соответствующую всем им (или
nullесли не найдено). Обратите внимание, что['id' => 1, 2]обрабатывается как массив без ассоциативных ключей.
Этот метод автоматически вызовет метод one() и вернёт экземпляр ActiveRecord.
Примечание: Поскольку это метод сокращенного синтаксиса, использование более сложных условий, таких как ['!=', '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 static findOne ( $condition ) | ||
|---|---|---|
| $condition | mixed |
Значение первичного ключа или набор значений столбцов |
| return | static |
Экземпляр ActiveRecord, соответствующий условию, или |
getAttribute() публичный метод
Возвращает значение атрибута по его имени.
Если эта запись является результатом запроса и атрибут не загружен, будет возвращено null.
См. также hasAttribute().
| public mixed getAttribute ( $name ) | ||
|---|---|---|
| $name | string |
Имя атрибута |
| return | mixed |
Значение атрибута. |
getAttributeHint() публичный метод (доступен с версии 2.0.4)
Возвращает подсказку к тексту для указанного атрибута.
Если атрибут выглядит как relatedModel.attribute, то атрибут будет получен из связанной модели.
См. также attributeHints().
| public string getAttributeHint ( $attribute ) | ||
|---|---|---|
| $attribute | string |
Имя атрибута |
| return | string |
Подсказка к атрибуту |
getAttributeLabel() публичный метод
Возвращает текстовую метку для указанного атрибута.
Если атрибут выглядит как relatedModel.attribute, то атрибут будет получен из связанной модели.
См. также:
| public string getAttributeLabel ( $attribute ) | ||
|---|---|---|
| $attribute | string |
Имя атрибута |
| return | string |
Метка атрибута |
getDirtyAttributes() публичный метод
Возвращает значения атрибутов, которые были изменены с момента их последней загрузки или сохранения.
Сравнение новых и старых значений производится с использованием ===.
| public array getDirtyAttributes ( $names = null ) | ||
|---|---|---|
| $names | string[]|null |
Имена атрибутов, значения которых могут быть возвращены, если они были изменены недавно. Если null, используется attributes(). |
| return | array |
Изменённые значения атрибутов (пары имя-значение) |
getIsNewRecord() публичный метод
Возвращает значение, указывающее, является ли текущая запись новой.
| public boolean getIsNewRecord ( ) | ||
|---|---|---|
| return | boolean |
Является ли запись новой и должна ли она быть вставлена при вызове save(). |
getOldAttribute() публичный метод
Возвращает старое значение атрибута по его имени.
Если эта запись является результатом запроса и атрибут не загружен, будет возвращено null.
См. также hasAttribute().
| public mixed getOldAttribute ( $name ) | ||
|---|---|---|
| $name | string |
Имя атрибута |
| return | mixed |
Старое значение атрибута. |
getOldAttributes() публичный метод
Возвращает старые значения атрибутов.
| public array getOldAttributes ( ) | ||
|---|---|---|
| return | array |
Старые значения атрибутов (пары имя-значение) |
getOldPrimaryKey() публичный метод
Возвращает старое(ые) значение(я) первичного ключа.
Это значение первичного ключа, которое заполняется в запись после выполнения метода поиска (например, find(), findOne()). Значение остаётся неизменным, даже если атрибут первичного ключа вручную присваивается с другим значением.
| public mixed getOldPrimaryKey ( $asArray = false ) | ||
|---|---|---|
| $asArray | boolean |
Возвращать ли значение первичного ключа в виде массива. Если |
| return | mixed |
Старое значение первичного ключа. Массив (имя столбца => значение столбца) возвращается, если первичный ключ составной или |
| throws | yii\db\Exception |
если у модели AR нет первичного ключа |
getPrimaryKey() публичный метод
Возвращает значение(я) первичного ключа.
| public mixed getPrimaryKey ( $asArray = false ) | ||
|---|---|---|
| $asArray | boolean |
Является ли значение первичного ключа массивом. Если |
| return | mixed |
Значение первичного ключа. Возвращается массив (имя столбца => значение столбца), если первичный ключ составной или |
getRelatedRecords() public method
Возвращает все заполненные связанные записи.
См. также getRelation().
| public array getRelatedRecords ( ) | ||
|---|---|---|
| return | array |
Массив связанных записей, индексированных по именам отношений. |
getRelation() public method
Возвращает объект отношения с указанным именем.
Отношение определяется методом-геттером, который возвращает объект yii\db\ActiveQueryInterface. Оно может быть объявлено как в самом классе Active Record, так и в одном из его поведений.
| public yii\db\ActiveQueryInterface|yii\db\ActiveQuery getRelation ( $name, $throwException = true ) | ||
|---|---|---|
| $name | string |
Имя отношения, например, |
| $throwException | boolean |
Выбрасывать ли исключение, если отношения не существует. |
| return | yii\db\ActiveQueryInterface|yii\db\ActiveQuery |
Объект запроса отношения. Если отношение не существует и |
| throws | yii\base\InvalidParamException |
если отношения с указанным именем не существует. |
hasAttribute() public method
Возвращает значение, указывающее, содержит ли модель атрибут с указанным именем.
| public boolean hasAttribute ( $name ) | ||
|---|---|---|
| $name | string |
Имя атрибута |
| return | boolean |
Содержит ли модель атрибут с указанным именем. |
hasMany() public method
Объявляет отношение has-many.
Объявление возвращается в виде объекта yii\db\ActiveQuery отношения, посредством которого можно запрашивать и получать связанные записи.
Отношение has-many означает, что существует несколько связанных записей, соответствующих критериям этого отношения, например, клиент имеет несколько заказов.
Например, чтобы объявить отношение orders для класса Customer, можно написать следующий код в классе Customer.
public function getOrders()
{
return $this->hasMany(Order::className(), ['customer_id' => 'id']);
}
Обратите внимание, что в приведенном выше примере ключ 'customer_id' в параметре $link относится к имени атрибута в связанном классе Order, а значение 'id' относится к имени атрибута в текущем классе AR.
Вызывайте методы, объявленные в yii\db\ActiveQuery, для дальнейшей настройки отношения.
| public yii\db\ActiveQueryInterface hasMany ( $class, $link ) | ||
|---|---|---|
| $class | string |
Имя класса связанной записи |
| $link | array |
Связь первичного и внешнего ключей. Ключи массива относятся к атрибутам записи, связанной с моделью |
| return | yii\db\ActiveQueryInterface |
Объект запроса отношения. |
hasOne() public method
Объявляет отношение has-one.
Объявление возвращается в виде объекта yii\db\ActiveQuery отношения, посредством которого можно запрашивать и получать связанную запись.
Отношение has-one означает, что существует не более одной связанной записи, соответствующей критериям этого отношения, например, клиент имеет одну страну.
Например, чтобы объявить отношение country для класса Customer, можно написать следующий код в классе Customer.
public function getCountry()
{
return $this->hasOne(Country::className(), ['id' => 'country_id']);
}
Обратите внимание, что в приведенном выше примере ключ 'id' в параметре $link относится к имени атрибута в связанном классе Country, а значение 'country_id' относится к имени атрибута в текущем классе AR.
Вызывайте методы, объявленные в yii\db\ActiveQuery, для дальнейшей настройки отношения.
| public yii\db\ActiveQueryInterface hasOne ( $class, $link ) | ||
|---|---|---|
| $class | string |
Имя класса связанной записи |
| $link | array |
Связь первичного и внешнего ключей. Ключи массива относятся к атрибутам записи, связанной с моделью |
| return | yii\db\ActiveQueryInterface |
Объект запроса отношения. |
init() public method
Инициализирует объект.
Этот метод вызывается в конце конструктора. Стандартная реализация вызовет событие EVENT_INIT. Если вы переопределяете этот метод, убедитесь, что вызываете родительскую реализацию в конце, чтобы гарантировать срабатывание события.
| public void init ( ) |
|---|
instantiate() public static method
Создает экземпляр active record.
Этот метод вызывается вместе с populateRecord() классом yii\db\ActiveQuery. Он не предназначен для непосредственного создания новых записей.
Вы можете переопределить этот метод, если создаваемый экземпляр зависит от данных строки, которые будут заполнены в запись. Например, создавая запись на основе значения столбца, вы можете реализовать так называемое отображение наследования по одной таблице.
| public static static instantiate ( $row ) | ||
|---|---|---|
| $row | array |
Данные строки для заполнения записи. |
| return | static |
Новая созданная запись active record |
isAttributeChanged() public method
Возвращает значение, указывающее, был ли изменён указанный атрибут.
| public boolean isAttributeChanged ( $name, $identical = true ) | ||
|---|---|---|
| $name | string |
Имя атрибута. |
| $identical | boolean |
Сравнивать ли новые и старые значения на идентичность, используя |
| return | boolean |
Был ли изменён атрибут |
isPrimaryKey() public static method
Возвращает значение, указывающее, представляет ли данный набор атрибутов первичный ключ для данной модели.
| public static boolean isPrimaryKey ( $keys ) | ||
|---|---|---|
| $keys | array |
Набор атрибутов для проверки |
| return | boolean |
Представляет ли данный набор атрибутов первичный ключ для данной модели |
isRelationPopulated() public method
Проверяет, было ли отношение заполнено записями.
См. также getRelation().
| public boolean isRelationPopulated ( $name ) | ||
|---|---|---|
| $name | string |
Имя отношения, например, |
| return | boolean |
Было ли отношение заполненно записями. |
link() public method
Устанавливает связь между двумя моделями.
Связь устанавливается путём задания значения(й) внешнего ключа в одной модели, соответствующего значению(ям) первичного ключа в другой модели. Модель с внешним ключом будет сохранена в базе данных без выполнения валидации.
Если связь включает таблицу-соединитель, новая строка будет добавлена в таблицу-соединитель, содержащая значения первичного ключа от обеих моделей.
Обратите внимание, что этот метод требует, чтобы значение первичного ключа не было null.
| public void link ( $name, $model, $extraColumns = [] ) | ||
|---|---|---|
| $name | string |
Регистрозависимое имя отношения, например, |
| $model | yii\db\ActiveRecordInterface |
Модель, которую нужно связать с текущей. |
| $extraColumns | array |
Дополнительные значения столбцов, которые нужно сохранить в таблицу-соединитель. Этот параметр имеет смысл только для связи, включающей таблицу-соединитель (т. е. для отношения, заданного с помощью yii\db\ActiveRelationTrait::via() или yii\db\ActiveQuery::viaTable().) |
| throws | yii\base\InvalidCallException |
если метод не может связать две модели. |
markAttributeDirty() public method
Помечает атрибут как изменённый.
Этот метод можно вызвать, чтобы принудительно обновить запись при вызове update(), даже если изменения в записи отсутствуют.
| public void markAttributeDirty ( $name ) | ||
|---|---|---|
| $name | string |
Имя атрибута |
offsetExists() public method
Возвращает, существует ли элемент по указанному смещению.
Этот метод требуется интерфейсом ArrayAccess.
| public boolean offsetExists ( $offset ) | ||
|---|---|---|
| $offset | mixed |
Смещение для проверки |
| return | boolean |
Существует ли элемент по указанному смещению. |
offsetUnset() public method
Устанавливает значение элемента по указанному смещению в null.
Этот метод требуется интерфейсом SPL ArrayAccess. Он неявно вызывается, когда вы используете что-то вроде unset($model[$offset]).
| public void offsetUnset ( $offset ) | ||
|---|---|---|
| $offset | mixed |
Смещение для удаления элемента |
optimisticLock() public method
Возвращает имя столбца, хранящего версию блокировки для реализации оптмистичной блокировки.
Оптмистичная блокировка позволяет нескольким пользователям одновременно получать доступ к той же записи для редактирования и предотвращает потенциальные конфликты. В случае, если пользователь пытается сохранить запись с устаревшими данными (потому что другой пользователь изменил данные), будет брошено исключение yii\db\StaleObjectException, и обновление или удаление пропущено.
Оптмистичная блокировка поддерживается только update() и delete().
Чтобы использовать оптмистичную блокировку:
- Создайте столбец для хранения номера версии каждой строки. Тип столбца должен быть
BIGINT DEFAULT 0. Переопределите этот метод, чтобы вернуть имя этого столбца. - Добавьте правило валидации
requiredдля столбца версии, чтобы убедиться, что значение версии отправлено. - В веб-форме, которая собирает пользовательский ввод, добавьте скрытое поле, хранящее версию блокировки записи, которую нужно обновить.
- В действии контроллера, выполняющем обновление данных, попробуйте поймать исключение yii\db\StaleObjectException и реализуйте необходимую бизнес-логику (например, объединение изменений, уведомление об устаревших данных) для разрешения конфликта.
| public string optimisticLock ( ) | ||
|---|---|---|
| return | string |
Имя столбца, хранящего версию блокировки строки таблицы. Если возвращается |
populateRecord() public static method
Заполняет объект активной записи данными из строки базы данных/хранилища.
Это внутренний метод, предназначенный для вызова для создания объектов активных записей после извлечения данных из базы данных. Он в основном используется yii\db\ActiveQuery для заполнения результатов запроса активными записями.
При ручном вызове этого метода нужно вызвать afterFind() на созданной записи, чтобы запустить событие afterFind Event.
| public static void populateRecord ( $record, $row ) | ||
|---|---|---|
| $record | yii\db\BaseActiveRecord |
Запись, которая должна быть заполнена. В большинстве случаев это будет экземпляр, созданный instantiate() предварительно. |
| $row | array |
Значения атрибутов (имя => значение) |
populateRelation() public method
Заполняет указанное отношение связанными записями.
Обратите внимание, что этот метод не проверяет, существует ли отношение.
См. также getRelation().
| public void populateRelation ( $name, $records ) | ||
|---|---|---|
| $name | string |
Имя отношения, например, |
| $records | yii\db\ActiveRecordInterface|array|null |
Связанные записи, которые нужно заполнить в отношение. |
refresh() public method
Перезаполняет активную запись последними данными.
Если обновление прошло успешно, произойдёт событие EVENT_AFTER_REFRESH. Это событие доступно начиная с версии 2.0.8.
| public boolean refresh ( ) | ||
|---|---|---|
| return | boolean |
Существует ли строка в базе данных. Если |
save() public method
Сохраняет текущую запись.
Этот метод вызовет insert(), когда $isNewRecord равно true, или update(), когда $isNewRecord равно false.
Например, для сохранения записи клиента:
$customer = new Customer; // or $customer = Customer::findOne($id); $customer->name = $name; $customer->email = $email; $customer->save();
| public boolean save ( $runValidation = true, $attributeNames = null ) | ||
|---|---|---|
| $runValidation | boolean |
Выполнять ли валидацию (вызов validate()) перед сохранением записи. По умолчанию |
| $attributeNames | array |
Список имён атрибутов, которые необходимо сохранить. По умолчанию null, что означает, что будут сохранены все атрибуты, загруженные из БД. |
| return | boolean |
Успешно ли прошло сохранение (т.е. не возникло ошибок валидации). |
setAttribute() public method
Устанавливает значение указанного атрибута.
См. также hasAttribute().
| public void setAttribute ( $name, $value ) | ||
|---|---|---|
| $name | string |
Имя атрибута |
| $value | mixed |
Значение атрибута. |
| throws | yii\base\InvalidParamException |
если атрибут с указанным именем не существует. |
setIsNewRecord() public method
Устанавливает значение, указывающее, является ли запись новой.
См. также getIsNewRecord().
| public void setIsNewRecord ( $value ) | ||
|---|---|---|
| $value | boolean |
Является ли запись новой и должна ли она быть вставлена при вызове save(). |
setOldAttribute() public method
Устанавливает старое значение указанного атрибута.
См. также hasAttribute().
| public void setOldAttribute ( $name, $value ) | ||
|---|---|---|
| $name | string |
Имя атрибута |
| $value | mixed |
Старое значение атрибута. |
| throws | yii\base\InvalidParamException |
если атрибут с указанным именем не существует. |
setOldAttributes() public method
Устанавливает старые значения атрибутов.
Все существующие старые значения атрибутов будут удалены.
| public void setOldAttributes ( $values ) | ||
|---|---|---|
| $values | array|null |
Старые значения атрибутов. Если установлено значение |
unlink() public method
Уничтожает связь между двумя моделями.
Модель с внешним ключом отношения будет удалена, если $delete равна true. В противном случае внешний ключ будет установлен null, и модель будет сохранена без валидации.
| public void unlink ( $name, $model, $delete = false ) | ||
|---|---|---|
| $name | string |
Используемое в регистре имя отношения, например |
| $model | yii\db\ActiveRecordInterface |
Модель, которая должна быть разъединена от текущей. Необходимо убедиться, что модель действительно связана с текущей моделью, так как этот метод не проверяет это. |
| $delete | boolean |
Удалить ли модель, содержащую внешний ключ. Если |
| throws | yii\base\InvalidCallException |
если модели нельзя разъединить |
unlinkAll() public method
Уничтожает отношение в текущей модели.
Модель с внешним ключом отношения будет удалена, если $delete равна true. В противном случае внешний ключ будет установлен null и модель будет сохранена без валидации.
Обратите внимание, что для уничтожения отношения без удаления записей убедитесь, что ваши ключи могут быть установлены в null
| public void unlinkAll ( $name, $delete = false ) | ||
|---|---|---|
| $name | string |
Используемое в регистре имя отношения, например |
| $delete | boolean |
Удалить ли модель, содержащую внешний ключ. |
update() public method
Сохраняет изменения в активной записи в связанной таблице базы данных.
Этот метод выполняет следующие шаги в порядке:
- вызывает 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 integer|false update ( $runValidation = true, $attributeNames = null ) | ||
|---|---|---|
| $runValidation | boolean |
Выполнять ли валидацию (вызывая validate()) перед сохранением записи. По умолчанию |
| $attributeNames | array |
Список имён атрибутов, которые нужно сохранить. По умолчанию null, что означает, что будут сохранены все атрибуты, загруженные из БД. |
| return | integer|false |
Количество затронутых строк или |
| throws | yii\db\StaleObjectException |
если включена оптимистическая блокировка, и данные, которые обновляются, устарели. |
| throws | yii\db\Exception |
в случае неудачи обновления. |
updateAll() public static method
Обновляет всю таблицу с использованием предоставленных значений атрибутов и условий.
Например, чтобы изменить статус на 1 для всех клиентов, чей статус равен 2:
Customer::updateAll(['status' => 1], 'status = 2');
| public static integer updateAll ( $attributes, $condition = '' ) | ||
|---|---|---|
| $attributes | array |
Значения атрибутов (имя-значение) для сохранения в таблице |
| $condition | string|array |
Условие, которое будет добавлено в часть WHERE запроса UPDATE. Обратитесь к yii\db\Query::where() для уточнения этого параметра. |
| return | integer |
Количество обновлённых строк |
| throws | yii\base\NotSupportedException |
если не переопределён |
updateAllCounters() public static method
Обновляет всю таблицу с использованием предоставленных изменений счётчика и условий.
Например, чтобы увеличить возраст всех клиентов на 1:
Customer::updateAllCounters(['age' => 1]);
| public static integer updateAllCounters ( $counters, $condition = '' ) | ||
|---|---|---|
| $counters | array |
Обновляемые счетчики (имя атрибута => значение приращения). Используйте отрицательные значения, если хотите уменьшить счетчики. |
| $condition | string|array |
Условия, которые будут добавлены в часть WHERE запроса UPDATE. Обратитесь к yii\db\Query::where() для получения информации о способе указания этого параметра. |
| return | integer |
Количество обновленных строк |
| throws | yii\base\NotSupportedException |
если не переопределено |
updateAttributes() public method
Обновляет указанные атрибуты.
Этот метод является сокращением для update(), когда не требуется проверка данных и необходимо обновить только небольшой набор атрибутов.
Вы можете указать обновляемые атрибуты в виде списка имен или пар имя-значение. В последнем случае соответствующие значения атрибутов будут изменены. Затем метод сохранит указанные атрибуты в базе данных.
Обратите внимание, что этот метод не выполняет проверку данных и не вызывает события.
| public integer updateAttributes ( $attributes ) | ||
|---|---|---|
| $attributes | array |
Обновляемые атрибуты (имена или пары имя-значение) |
| return | integer |
Количество затронутых строк. |
updateCounters() public method
Обновляет один или несколько столбцов счётчиков для текущего объекта AR.
Обратите внимание, что этот метод отличается от updateAllCounters() тем, что сохраняет счетчики только для текущего объекта AR.
Пример использования:
$post = Post::findOne($id); $post->updateCounters(['view_count' => 1]);
См. также updateAllCounters().
| public boolean updateCounters ( $counters ) | ||
|---|---|---|
| $counters | array |
Обновляемые счётчики (имя атрибута => значение приращения). Используйте отрицательные значения, если хотите уменьшить счётчики. |
| return | boolean |
Успешность сохранения |
updateInternal() protected method
См. также update().
| protected integer|false updateInternal ( $attributes = null ) | ||
|---|---|---|
| $attributes | array |
Атрибуты для обновления |
| return | integer|false |
Количество изменённых строк или false, если beforeSave() остановил процесс обновления. |
| throws | yii\db\StaleObjectException | |
Подробности событий
EVENT_AFTER_DELETE событие типа yii\base\Event
Событие, которое срабатывает после удаления записи.
EVENT_AFTER_FIND событие типа yii\base\Event
Событие, которое срабатывает после создания записи и заполнения её результатами запроса.
EVENT_AFTER_INSERT событие типа yii\db\AfterSaveEvent
Событие, которое срабатывает после вставки записи.
EVENT_AFTER_REFRESH событие типа yii\base\Event (доступно начиная с версии 2.0.8)
Событие, которое срабатывает после обновления записи.
EVENT_AFTER_UPDATE событие типа yii\db\AfterSaveEvent
Событие, которое срабатывает после обновления записи.
EVENT_BEFORE_DELETE событие типа yii\base\ModelEvent
Событие, которое срабатывает перед удалением записи. Вы можете установить yii\base\ModelEvent::$isValid в false чтобы остановить удаление.
EVENT_BEFORE_INSERT событие типа yii\base\ModelEvent
Событие, которое срабатывает перед вставкой записи. Вы можете установить yii\base\ModelEvent::$isValid в false чтобы остановить вставку.
EVENT_BEFORE_UPDATE событие типа yii\base\ModelEvent
Событие, которое срабатывает перед обновлением записи. Вы можете установить yii\base\ModelEvent::$isValid в false чтобы остановить обновление.
EVENT_INIT событие типа yii\base\Event
Событие, которое срабатывает при инициализации записи через init().
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-db-baseactiverecord.html