Класс yii\base\Model
Model — базовый класс для моделей данных.
Model реализует следующие часто используемые функции:
- объявление атрибутов: по умолчанию каждый публичный член класса рассматривается как атрибут модели
- метки атрибутов: каждый атрибут может быть связан с меткой для отображения
- массовое присваивание атрибутов
- валидация на основе сценариев
Model также вызывает следующие события при выполнении проверки данных:
- EVENT_BEFORE_VALIDATE: событие, которое срабатывает в начале validate()
- EVENT_AFTER_VALIDATE: событие, которое срабатывает в конце validate()
Вы можете напрямую использовать Model для хранения данных модели или расширить её с кастомизацией.
Для получения дополнительной информации и инструкций по использованию Model, см. статью в руководстве по моделям.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $activeValidators | yii\validators\Validator[] | Вадидаторы, применимые к текущему $scenario. | yii\base\Model |
| $attributes | массив | Значения атрибутов (имя => значение). | yii\base\Model |
| $behaviors | yii\base\Behavior[] | Список поведенческих свойств, присоединённых к этому компоненту | yii\base\Component |
| $errors | массив | Ошибки для всех атрибутов или указанного атрибута. | yii\base\Model |
| $firstErrors | массив | Первые ошибки. | yii\base\Model |
| $iterator | ArrayIterator | Итератор для обхода элементов в списке. | yii\base\Model |
| $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() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| activeAttributes() | Возвращает имена атрибутов, которые подлежат валидации в текущем сценарии. | yii\base\Model |
| addError() | Добавляет новую ошибку к указанному атрибуту. | yii\base\Model |
| addErrors() | Добавляет список ошибок. | yii\base\Model |
| afterValidate() | Этот метод вызывается после завершения валидации. | yii\base\Model |
| attachBehavior() | Прикрепляет поведение к данному компоненту. | yii\base\Component |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | yii\base\Component |
| attributeHints() | Возвращает подсказки атрибутов. | yii\base\Model |
| attributeLabels() | Возвращает метки атрибутов. | yii\base\Model |
| attributes() | Возвращает список имен атрибутов. | yii\base\Model |
| beforeValidate() | Этот метод вызывается перед началом валидации. | yii\base\Model |
| behaviors() | Возвращает список поведений, которые должен иметь этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, может ли свойство быть прочитано. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, может ли свойство быть установлено. | yii\base\Object |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| clearErrors() | Удаляет ошибки для всех атрибутов или одного атрибута. | yii\base\Model |
| createValidators() | Создаёт объекты валидаторов на основе правил валидации, указанных в rules(). | yii\base\Model |
| detachBehavior() | Открепляет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Открепляет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. | yii\base\Component |
| extraFields() | Возвращает список полей, которые могут быть расширены и возвращены функцией toArray(). | yii\base\ArrayableTrait |
| fields() | Возвращает список полей, которые должны быть возвращены по умолчанию функцией toArray(), если не указаны конкретные поля. | yii\base\Model |
| formName() | Возвращает имя формы, которое должен использовать этот класс модели. | yii\base\Model |
| generateAttributeLabel() | Генерирует удобочитаемую метку атрибута на основе заданного имени атрибута. | yii\base\Model |
| getActiveValidators() | Возвращает валидаторы, применимые к текущему $scenario. | yii\base\Model |
| getAttributeHint() | Возвращает подсказку для указанного атрибута. | yii\base\Model |
| getAttributeLabel() | Возвращает текстовую метку для указанного атрибута. | yii\base\Model |
| getAttributes() | Возвращает значения атрибутов. | yii\base\Model |
| getBehavior() | Возвращает объект поведения с заданным именем. | yii\base\Component |
| getBehaviors() | Возвращает все поведения, прикрепленные к этому компоненту. | yii\base\Component |
| getErrors() | Возвращает ошибки для всех атрибутов или одного атрибута. | yii\base\Model |
| getFirstError() | Возвращает первую ошибку для указанного атрибута. | yii\base\Model |
| getFirstErrors() | Возвращает первую ошибку для каждого атрибута в модели. | yii\base\Model |
| getIterator() | Возвращает итератор для обхода атрибутов модели. | yii\base\Model |
| getScenario() | Возвращает сценарий, в котором используется эта модель. | yii\base\Model |
| getValidators() | Возвращает все валидаторы, объявленные в rules(). | yii\base\Model |
| hasErrors() | Возвращает значение, указывающее, есть ли ошибки валидации. | yii\base\Model |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчики, прикрепленные к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\base\Object |
| isAttributeActive() | Возвращает значение, указывающее, активен ли атрибут в текущем сценарии. | yii\base\Model |
| isAttributeRequired() | Возвращает значение, указывающее, требуется ли атрибут. | yii\base\Model |
| isAttributeSafe() | Возвращает значение, указывающее, является ли атрибут безопасным для массовых назначений. | yii\base\Model |
| load() | Заполняет модель входными данными. | yii\base\Model |
| loadMultiple() | Заполняет набор моделей данными от конечного пользователя. | yii\base\Model |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| offsetExists() | Возвращает, существует ли элемент по указанному смещению. | yii\base\Model |
| offsetGet() | Возвращает элемент по указанному смещению. | yii\base\Model |
| offsetSet() | Устанавливает элемент по указанному смещению. | yii\base\Model |
| offsetUnset() | Устанавливает значение элемента по указанному смещению в null. | yii\base\Model |
| on() | Прикрепляет обработчик событий к событию. | yii\base\Component |
| onUnsafeAttribute() | Этот метод вызывается, когда небезопасное свойство массово присваивается. | yii\base\Model |
| rules() | Возвращает правила проверки для атрибутов. | yii\base\Model |
| safeAttributes() | Возвращает имена атрибутов, которые безопасно массово присваивать в текущем сценарии. | yii\base\Model |
| scenarios() | Возвращает список сценариев и соответствующих активных атрибутов. | yii\base\Model |
| setAttributes() | Устанавливает значения атрибутов массовым образом. | yii\base\Model |
| setScenario() | Устанавливает сценарий для модели. | yii\base\Model |
| toArray() | Преобразует модель в массив. | yii\base\ArrayableTrait |
| trigger() | Вызывает событие. | yii\base\Component |
| validate() | Выполняет проверку данных. | yii\base\Model |
| validateMultiple() | Проверяет несколько моделей. | yii\base\Model |
Защищённые методы
| Метод | Описание | Определено |
|---|---|---|
| resolveFields() | Определяет, какие поля могут быть возвращены методом toArray(). | yii\base\ArrayableTrait |
События
| Событие | Тип | Описание | Определено |
|---|---|---|---|
| EVENT_AFTER_VALIDATE | yii\base\Event | Событие, поднимаемое в конце validate() | yii\base\Model |
| EVENT_BEFORE_VALIDATE | yii\base\ModelEvent | Событие, поднимаемое в начале validate(). | yii\base\Model |
Константы
| Константа | Значение | Описание | Определено |
|---|---|---|---|
| SCENARIO_DEFAULT | 'default' | Имя сценария по умолчанию. | yii\base\Model |
Подробное описание свойств
$activeValidators общедоступное только для чтения свойство
Ва́лидаторы, применимые к текущему $scenario.
public yii\validators\Validator[] getActiveValidators ( $attribute = null )
$attributes общедоступное свойство
Значения атрибутов (имя => значение).
public array getAttributes ( $names = null, $except = [] )
public void setAttributes ( $values, $safeOnly = true )
$errors общедоступное только для чтения свойство
Ошибки для всех атрибутов или указанного атрибута. Возвращает пустой массив, если ошибок нет. Обратите внимание, что при возвращении ошибок для всех атрибутов результат представляет собой двумерный массив, например:
[
'username' => [
'Username is required.',
'Username must contain only word characters.',
],
'email' => [
'Email address is invalid.',
]
]
public array getErrors ( $attribute = null )
$firstErrors общедоступное только для чтения свойство
Первые ошибки. Ключи массива — имена атрибутов, а значения — соответствующие сообщения об ошибках. Возвращается пустой массив, если ошибок нет.
public array getFirstErrors ( )
$iterator общедоступное только для чтения свойство
Итератор для обхода элементов в списке.
public ArrayIterator getIterator ( )
$scenario общедоступное свойство
Сценарий, в котором находится эта модель. По умолчанию SCENARIO_DEFAULT.
public string getScenario ( )
public void setScenario ( $value )
$validators общедоступное только для чтения свойство
Все объявленные в модели валидаторы.
public ArrayObject|yii\validators\Validator[] getValidators ( )
Подробное описание методов
activeAttributes() public method
Возвращает имена атрибутов, которые подлежат валидации в текущем сценарии.
| public string[] activeAttributes ( ) | ||
|---|---|---|
| return | string[] |
Безопасные имена атрибутов |
addError() public method
Добавляет новую ошибку к указанному атрибуту.
| public void addError ( $attribute, $error = '' ) | ||
|---|---|---|
| $attribute | string |
Имя атрибута |
| $error | string |
Новое сообщение об ошибке |
addErrors() public method (доступно с версии 2.0.2)
Добавляет список ошибок.
| public void addErrors ( array $items ) | ||
|---|---|---|
| $items | array |
Список ошибок. Ключи массива должны быть именами атрибутов. Значения массива должны быть сообщениями об ошибках. Если для атрибута есть несколько ошибок, эти ошибки должны быть заданы в виде массива. Вы можете использовать результат getErrors() в качестве значения для этого параметра. |
afterValidate() public method
Этот метод вызывается после завершения валидации.
Реализация по умолчанию вызывает событие afterValidate. Вы можете переопределить этот метод, чтобы выполнить постобработку после валидации. Убедитесь, что вызывается родительская реализация, чтобы событие могло быть вызвано.
| public void afterValidate ( ) |
|---|
attributeHints() public method (доступно с версии 2.0.4)
Возвращает подсказки атрибутов.
Подсказки атрибутов в основном используются для отображения. Например, для атрибута isPublic, мы можем объявить подсказку Whether the post should be visible for not logged in users, которая предоставляет удобное описание значения атрибута и может быть отображена конечным пользователям.
В отличие от метки, подсказка не будет сгенерирована, если её явное объявление опущено.
Примечание: для наследования подсказок, определённых в родительском классе, дочерний класс должен объединить родительские подсказки с дочерними, используя функции, такие как array_merge().
| public array attributeHints ( ) | ||
|---|---|---|
| return | array |
Подсказки атрибутов (имя => подсказка) |
attributeLabels() public method
Возвращает метки атрибутов.
Метки атрибутов в основном используются для отображения. Например, для атрибута firstName, мы можем объявить метку First Name, которая более удобна для пользователя и может быть отображена конечным пользователям.
По умолчанию метка атрибута генерируется с помощью generateAttributeLabel(). Этот метод позволяет явно указать метки атрибутов.
Примечание: для наследования меток, определённых в родительском классе, дочерний класс должен объединить родительские метки с дочерними, используя функции, такие как array_merge().
См. также generateAttributeLabel().
| public array attributeLabels ( ) | ||
|---|---|---|
| return | array |
Метки атрибутов (имя => метка) |
attributes() public method
Возвращает список имён атрибутов.
По умолчанию этот метод возвращает все открытые нестатические свойства класса. Вы можете переопределить этот метод, чтобы изменить стандартное поведение.
| public array attributes ( ) | ||
|---|---|---|
| return | array |
Список имён атрибутов. |
beforeValidate() public method
Этот метод вызывается перед началом валидации.
Реализация по умолчанию вызывает событие beforeValidate. Вы можете переопределить этот метод, чтобы выполнить предварительные проверки перед валидацией. Убедитесь, что вызывается родительская реализация, чтобы событие могло быть вызвано.
| public boolean beforeValidate ( ) | ||
|---|---|---|
| return | boolean |
Выполняется ли валидация. По умолчанию возвращается true. Если возвращается false, валидация останавливается, и модель считается невалидной. |
clearErrors() public method
Удаляет ошибки для всех атрибутов или одного атрибута.
| public void clearErrors ( $attribute = null ) | ||
|---|---|---|
| $attribute | string |
Имя атрибута. Используйте null для удаления ошибок для всех атрибутов. |
createValidators() public method
Создаёт объекты валидаторов на основе правил валидации, указанных в rules().
В отличие от getValidators(), каждый вызов этого метода возвращает новый список валидаторов.
| public ArrayObject createValidators ( ) | ||
|---|---|---|
| return | ArrayObject |
Валидаторы |
| throws | yii\base\InvalidConfigException |
если конфигурация какого-либо правила валидации неверна |
fields() public method
Возвращает список полей, которые должны возвращаться по умолчанию методом toArray(), когда не указаны конкретные поля.
Поле — это именованный элемент в возвращаемом массиве методом toArray().
Этот метод должен возвращать массив имён полей или определений полей. Если это массив имён, имя поля будет рассматриваться как имя свойства объекта, значение которого будет использоваться в качестве значения поля. Если это массив определений, ключ массива должен быть именем поля, а значение — соответствующим определением поля, которое может быть именем свойства объекта или 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() с индексами по тем же именам атрибутов.
См. также toArray().
| public array fields ( ) | ||
|---|---|---|
| return | array |
Список имён полей или определений полей. |
formName() public method
Возвращает имя формы, которое должен использовать этот класс модели.
Имя формы используется в основном yii\widgets\ActiveForm, чтобы определить, как именовать поля ввода для атрибутов модели. Если имя формы "A", а имя атрибута "b", то соответствующее имя ввода будет "A[b]". Если имя формы пустая строка, то имя ввода будет "b".
Цель вышеуказанной схемы именования — для форм, содержащих несколько разных моделей, атрибуты каждой модели группируются в подмассивах POST-данных, что облегчает их различение.
По умолчанию этот метод возвращает имя класса модели (без имени пространства имён) в качестве имени формы. Вы можете переопределить его, когда модель используется в разных формах.
См. также load().
| public string formName ( ) | ||
|---|---|---|
| return | string |
Имя формы для этого класса модели. |
generateAttributeLabel() public method
Генерирует удобочитаемую метку атрибута на основе заданного имени атрибута.
Это делается путём замены подчёркиваний, тире и точек пробелами и изменения первой буквы каждого слова на заглавную. Например, 'department_name' или 'DepartmentName' будут преобразованы в 'Department Name'.
| public string generateAttributeLabel ( $name ) | ||
|---|---|---|
| $name | string |
Имя столбца |
| return | string |
Метка атрибута |
getActiveValidators() public method
Возвращает валидаторы, применимые к текущему $scenario.
| public yii\validators\Validator[] getActiveValidators ( $attribute = null ) | ||
|---|---|---|
| $attribute | string |
Имя атрибута, для которого должны быть возвращены применимые валидаторы. Если null, будут возвращены валидаторы для ВСЕХ атрибутов в модели. |
| return | yii\validators\Validator[] |
Валидаторы, применимые к текущему $scenario. |
getAttributeHint() public method (доступно с версии 2.0.4)
Возвращает подсказку для указанного атрибута.
См. также attributeHints().
| public string getAttributeHint ( $attribute ) | ||
|---|---|---|
| $attribute | string |
Имя атрибута |
| return | string |
Подсказка атрибута |
getAttributeLabel() public method
Возвращает метку для указанного атрибута.
См. также:
| public string getAttributeLabel ( $attribute ) | ||
|---|---|---|
| $attribute | string |
Имя атрибута |
| return | string |
Метка атрибута |
getAttributes() public method
Возвращает значения атрибутов.
| public array getAttributes ( $names = null, $except = [] ) | ||
|---|---|---|
| $names | array |
Список атрибутов, значения которых нужно вернуть. По умолчанию null, что означает, что будут возвращены все атрибуты, перечисленные в attributes(). Если это массив, будут возвращены только атрибуты из массива. |
| $except | array |
Список атрибутов, значения которых не должны быть возвращены. |
| return | array |
Значения атрибутов (имя => значение). |
getErrors() public method
Возвращает ошибки для всех атрибутов или для одного атрибута.
См. также:
| public array getErrors ( $attribute = null ) | ||
|---|---|---|
| $attribute | string |
Имя атрибута. Используйте null для получения ошибок для всех атрибутов. |
| return | array |
Ошибки для всех атрибутов или для указанного атрибута. Если ошибок нет, возвращается пустой массив. Обратите внимание, что при возвращении ошибок для всех атрибутов, результатом является двумерный массив, например: [
'username' => [
'Username is required.',
'Username must contain only word characters.',
],
'email' => [
'Email address is invalid.',
]
]
|
getFirstError() public method
Возвращает первую ошибку указанного атрибута.
См. также:
| public string getFirstError ( $attribute ) | ||
|---|---|---|
| $attribute | string |
Имя атрибута. |
| return | string |
Сообщение об ошибке. Если ошибка отсутствует, возвращается null. |
getFirstErrors() public method
Возвращает первую ошибку каждого атрибута в модели.
См. также:
| public array getFirstErrors ( ) | ||
|---|---|---|
| return | array |
Первые ошибки. Ключи массива — имена атрибутов, значения — соответствующие сообщения об ошибках. Если ошибок нет, возвращается пустой массив. |
getIterator() public method
Возвращает итератор для обхода атрибутов в модели.
Этот метод необходим для интерфейса IteratorAggregate.
| public ArrayIterator getIterator ( ) | ||
|---|---|---|
| return | ArrayIterator |
Итератор для обхода элементов в списке. |
getScenario() public method
Возвращает сценарий, в котором используется эта модель.
Сценарий влияет на то, как выполняется валидация и какие атрибуты можно массово назначать.
| public string getScenario ( ) | ||
|---|---|---|
| return | string |
Сценарий, в котором находится модель. По умолчанию SCENARIO_DEFAULT. |
getValidators() public method
Возвращает все валидаторы, объявленные в rules().
Этот метод отличается от getActiveValidators(), так как последний возвращает только валидаторы, применимые к текущему $scenario.
Поскольку этот метод возвращает объект ArrayObject, вы можете его изменять, вставляя или удаляя валидаторы (полезно в поведении модели). Например,
$model->validators[] = $newValidator;
| public ArrayObject|yii\validators\Validator[] getValidators ( ) | ||
|---|---|---|
| return | ArrayObject|yii\validators\Validator[] |
Все валидаторы, объявленные в модели. |
hasErrors() public method
Возвращает значение, указывающее, есть ли ошибка валидации.
| public boolean hasErrors ( $attribute = null ) | ||
|---|---|---|
| $attribute | string|null |
Имя атрибута. Используйте null для проверки всех атрибутов. |
| return | boolean |
Есть ли ошибка. |
isAttributeActive() public method
Возвращает значение, указывающее, активен ли атрибут в текущем сценарии.
См. также activeAttributes().
| public boolean isAttributeActive ( $attribute ) | ||
|---|---|---|
| $attribute | string |
Имя атрибута |
| return | boolean |
Активен ли атрибут в текущем сценарии |
isAttributeRequired() public method
Возвращает значение, указывающее, требуется ли атрибут.
Это определяется проверкой, связана ли атрибут с правилом валидации обязательности в текущем $сценарии.
Обратите внимание, что когда к валидатору применено условное ограничение с помощью $когда, этот метод вернет false независимо от when условия, поскольку он может быть вызван до загрузки данных в модель.
| public boolean isAttributeRequired ( $attribute ) | ||
|---|---|---|
| $attribute | string |
Имя атрибута |
| return | boolean |
Требуется ли атрибут |
isAttributeSafe() public method
Возвращает значение, указывающее, является ли атрибут безопасным для массового назначения.
См. также safeAttributes().
| public boolean isAttributeSafe ( $attribute ) | ||
|---|---|---|
| $attribute | string |
Имя атрибута |
| return | boolean |
Является ли атрибут безопасным для массового назначения |
load() public method
Заполняет модель данными из ввода.
Этот метод предоставляет удобный ярлык для:
if (isset($_POST['FormName'])) {
$model->attributes = $_POST['FormName'];
if ($model->save()) {
// handle success
}
}
который, с load(), можно записать как:
if ($model->load($_POST) && $model->save()) {
// handle success
}
load() получает 'FormName' из метода formName() модели (который вы можете переопределить), если параметр $formName не задан. Если имя формы пустое, load() заполняет модель всем $data, а не $data['FormName'].
Обратите внимание, что данные, которые загружаются, проверяются на безопасность методом setAttributes().
| public boolean load ( $data, $formName = null ) | ||
|---|---|---|
| $data | array |
Массив данных для загрузки, обычно |
| $formName | string |
Имя формы для загрузки данных в модель. Если не задано, используется formName(). |
| return | boolean |
Возвращает, успешно ли |
loadMultiple() public static method
Заполняет набор моделей данными от пользователя.
Этот метод в основном используется для сбора данных табличного ввода. Данные для загрузки каждой модели — $data[formName][index], где formName — значение formName(), а index — индекс модели в массиве $models. Если formName() пустой, $data[index] используется для заполнения каждой модели. Данные, загружаемые в каждую модель, проверяются на безопасность методом setAttributes().
| public static boolean loadMultiple ( $models, $data, $formName = null ) | ||
|---|---|---|
| $models | array |
Модели, которые будут заполнены. Обратите внимание, что все модели должны иметь одинаковый класс. |
| $data | array |
Массив данных. Обычно это |
| $formName | string |
Имя формы, которое будет использоваться для загрузки данных в модели. Если не задано, используется значение formName() первой модели в |
| return | boolean |
Возвращает, успешно ли хотя бы одна из моделей была успешно заполнена. |
offsetExists() public method
Возвращает, существует ли элемент по указанному смещению.
Этот метод необходим для интерфейса SPL ArrayAccess. Он неявно вызывается, когда вы используете что-то вроде isset($model[$offset]).
| public boolean offsetExists ( $offset ) | ||
|---|---|---|
| $offset | mixed |
Смещение для проверки. |
| return | boolean |
Существует ли смещение. |
offsetGet() public method
Возвращает элемент по указанному смещению.
Этот метод необходим для интерфейса SPL ArrayAccess. Он неявно вызывается, когда вы используете что-то вроде $value = $model[$offset];.
| public mixed offsetGet ( $offset ) | ||
|---|---|---|
| $offset | mixed |
Смещение для получения элемента. |
| return | mixed |
Элемент по смещению, null, если элемент по смещению не найден. |
offsetSet() public method
Устанавливает элемент по указанному смещению.
Этот метод необходим для интерфейса SPL ArrayAccess. Он неявно вызывается, когда вы используете что-то вроде $model[$offset] = $item;.
| public void offsetSet ( $offset, $item ) | ||
|---|---|---|
| $offset | integer |
Смещение для установки элемента |
| $item | mixed |
Значение элемента |
offsetUnset() public method
Устанавливает значение элемента по указанному смещению в null.
Этот метод необходим для интерфейса SPL ArrayAccess. Он неявно вызывается, когда вы используете что-то вроде unset($model[$offset]).
| public void offsetUnset ( $offset ) | ||
|---|---|---|
| $offset | mixed |
Смещение для удаления элемента |
onUnsafeAttribute() public method
Этот метод вызывается при массовом назначении небезопасного атрибута.
Стандартная реализация запишет сообщение об ошибке, если YII_DEBUG включен. В противном случае ничего не делает.
| public void onUnsafeAttribute ( $name, $value ) | ||
|---|---|---|
| $name | string |
Имя небезопасного атрибута |
| $value | mixed |
Значение атрибута |
rules() public method
Возвращает правила валидации для атрибутов.
Правила валидации используются методом validate() для проверки корректности значений атрибутов. Дочерние классы могут переопределять этот метод, чтобы объявить различные правила валидации.
Каждое правило — это массив со следующей структурой:
[
['attribute1', 'attribute2'],
'validator type',
'on' => ['scenario1', 'scenario2'],
//...other parameters...
]
где
- список атрибутов: обязательный, определяет массив атрибутов, подлежащих валидации. Для одного атрибута можно передать строку;
- тип валидатора: обязательный, определяет используемый валидатор. Это может быть встроенное имя валидатора, имя метода класса модели, анонимная функция или имя класса валидатора.
- on: необязательный, определяет массив сценариев, в которых правило валидации может быть применено. Если этот параметр не задан, правило будет применено ко всем сценариям.
- дополнительные пары имя-значение могут быть заданы для инициализации соответствующих свойств валидатора. Обратитесь к API отдельных классов валидаторов для возможных свойств.
Валидатор может быть объектом класса, расширяющего yii\validators\Validator, или методом класса модели (встроенный валидатор), имеющим следующий синтаксис:
// $params refers to validation parameters given in the rule function validatorName($attribute, $params)
В приведенном выше примере $attribute относится к атрибуту, который в данный момент валидируется, а $params содержит массив параметров конфигурации валидатора, например max в случае валидатора string. Значение атрибута, который в данный момент валидируется, можно получить как $this->$attribute. Обратите внимание на $ перед attribute; это берет значение переменной $attribute и использует его в качестве имени свойства для доступа.
Yii также предоставляет набор встроенных валидаторов. Каждый из них имеет псевдоним, который может использоваться при указании правила валидации.
Ниже приведены некоторые примеры:
[
// built-in "required" validator
[['username', 'password'], 'required'],
// built-in "string" validator customized with "min" and "max" properties
['username', 'string', 'min' => 3, 'max' => 12],
// built-in "compare" validator that is used in "register" scenario only
['password', 'compare', 'compareAttribute' => 'password2', 'on' => 'register'],
// an inline validator defined via the "authenticate()" method in the model class
['password', 'authenticate', 'on' => 'login'],
// a validator of class "DateRangeValidator"
['dateRange', 'DateRangeValidator'],
];
Обратите внимание, что для наследования правил, определенных в родительском классе, дочернему классу необходимо объединить родительские правила с дочерними правилами с помощью функций, таких как array_merge().
См. также scenarios().
| public массив правила ( ) | ||
|---|---|---|
| возврат | массив |
Правила валидации |
safeAttributes() public метод
Возвращает имена атрибутов, которые безопасно массово назначать в текущей ситуации.
| public строка[] безопасныеАтрибуты ( ) | ||
|---|---|---|
| возврат | строка[] |
Безопасные имена атрибутов |
scenarios() public метод
Возвращает список сценариев и соответствующих активных атрибутов.
Активный атрибут — это атрибут, который подвергается валидации в текущем сценарии. Возвращаемый массив должен иметь следующий формат:
[
'scenario1' => ['attribute11', 'attribute12', ...],
'scenario2' => ['attribute21', 'attribute22', ...],
...
]
По умолчанию активный атрибут считается безопасным и может быть массово назначен. Если атрибут НЕ должен быть массово назначен (следовательно, считается небезопасным), пожалуйста, добавьте перед именем атрибута символ восклицания (например, '!rank').
По умолчанию этот метод возвращает все сценарии, найденные в объявлении правил(). Специальный сценарий с именем SCENARIO_DEFAULT будет содержать все атрибуты, найденные в правилах(). Каждый сценарий будет связан с атрибутами, которые проверяются правилами валидации, применяемыми к сценарию.
| public массив сценарии ( ) | ||
|---|---|---|
| возврат | массив |
Список сценариев и соответствующих активных атрибутов. |
setAttributes() public метод
Устанавливает значения атрибутов массовым способом.
См. также:
| public void setAttributes ( $values, $safeOnly = true ) | ||
|---|---|---|
| $values | массив |
Значения атрибутов (имя => значение), которые должны быть назначены модели. |
| $safeOnly | булево |
Выполнять ли назначение только для безопасных атрибутов. Безопасный атрибут — это атрибут, связанный с правилом валидации в текущем $сценарий. |
setScenario() public метод
Устанавливает сценарий для модели.
Обратите внимание, что этот метод не проверяет существование сценария. Метод validate() выполнит эту проверку.
| public void setScenario ( $value ) | ||
|---|---|---|
| $value | строка |
Сценарий, в котором находится эта модель. |
validate() public метод
Выполняет валидацию данных.
Этот метод выполняет правила валидации, применимые к текущему $сценарий. Следующие критерии используются для определения того, применимо ли правило в данный момент:
- правило должно быть связано с атрибутами, относящимися к текущему сценарию;
- правила должны быть актуальны для текущего сценария.
Этот метод вызовет beforeValidate() и afterValidate() до и после фактической валидации соответственно. Если beforeValidate() возвращает false, валидация будет отменена, и afterValidate() не будет вызван.
Ошибки, обнаруженные во время валидации, могут быть получены с помощью getErrors(), getFirstErrors() и getFirstError().
| public булево validate ( $attributeNames = null, $clearErrors = true ) | ||
|---|---|---|
| $attributeNames | массив |
Список имён атрибутов, которые должны быть проверены. Если этот параметр пуст, это означает, что должны быть проверены все атрибуты, указанные в применимых правилах валидации. |
| $clearErrors | булево |
Очистить ли ошибки перед выполнением валидации |
| возврат | булево |
Успешна ли валидация без ошибок. |
| throws | yii\base\InvalidParamException |
если текущий сценарий неизвестен. |
validateMultiple() public статический метод
Проверяет несколько моделей.
Этот метод проверит каждую модель. Проверяемые модели могут быть одного или разных типов.
| public static булево validateMultiple ( $models, $attributeNames = null ) | ||
|---|---|---|
| $models | массив |
Проверяемые модели |
| $attributeNames | массив |
Список имён атрибутов, которые должны быть проверены. Если этот параметр пуст, это означает, что должны быть проверены все атрибуты, указанные в применимых правилах валидации. |
| возврат | булево |
Все ли модели валидны. Возвращает false, если у одной или нескольких моделей есть ошибка валидации. |
Подробности событий
EVENT_AFTER_VALIDATE событие типа yii\base\Event
Событие, генерируемое в конце validate()
EVENT_BEFORE_VALIDATE событие типа yii\base\ModelEvent
Событие, генерируемое в начале validate(). Вы можете установить yii\base\ModelEvent::$isValid в false, чтобы остановить валидацию.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-base-model.html