Spec-Zone.ru › Yii 2.0

Класс yii\base\Model

Все классы | Свойства | Методы | События | Константы
Наследование yii\base\Model » yii\base\Component » yii\base\Object
Реализует ArrayAccess, IteratorAggregate, yii\base\Arrayable, yii\base\Configurable
Использует трейты yii\base\ArrayableTrait
Подклассы yii\base\DynamicModel, yii\db\ActiveRecord, yii\db\BaseActiveRecord, yii\debug\models\Router, yii\debug\models\UserSwitch, yii\debug\models\search\Base, yii\debug\models\search\Db, yii\debug\models\search\Debug, yii\debug\models\search\Log, yii\debug\models\search\Mail, yii\debug\models\search\Profile, yii\debug\models\search\User, yii\debug\models\timeline\Search, yii\elasticsearch\ActiveRecord, yii\gii\Generator, yii\gii\generators\controller\Generator, yii\gii\generators\crud\Generator, yii\gii\generators\extension\Generator, yii\gii\generators\form\Generator, yii\gii\generators\model\Generator, yii\gii\generators\module\Generator, yii\httpclient\debug\SearchModel, yii\mongodb\ActiveRecord, yii\mongodb\file\ActiveRecord, yii\mongodb\gii\model\Generator, yii\redis\ActiveRecord, yii\sphinx\ActiveRecord, yii\sphinx\gii\model\Generator
Доступен с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/base/Model.php

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

Возвращает метку для указанного атрибута.

См. также:

  • generateAttributeLabel()
  • attributeLabels()
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

Возвращает ошибки для всех атрибутов или для одного атрибута.

См. также:

  • getFirstErrors()
  • getFirstError()
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

Возвращает первую ошибку указанного атрибута.

См. также:

  • getErrors()
  • getFirstErrors()
public string getFirstError ( $attribute )
$attribute string

Имя атрибута.

return string

Сообщение об ошибке. Если ошибка отсутствует, возвращается null.

getFirstErrors() public method

Возвращает первую ошибку каждого атрибута в модели.

См. также:

  • getErrors()
  • getFirstError()
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

Массив данных для загрузки, обычно $_POST или $_GET.

$formName string

Имя формы для загрузки данных в модель. Если не задано, используется formName().

return boolean

Возвращает, успешно ли load() обнаружил ожидаемую форму в $data.

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

Массив данных. Обычно это $_POST или $_GET, но также может быть любой допустимый массив, предоставленный пользователем.

$formName string

Имя формы, которое будет использоваться для загрузки данных в модели. Если не задано, используется значение formName() первой модели в $models. Этот параметр доступен с версии 2.0.1.

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

Spec-Zone.ru

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