Spec-Zone.ru › Yii 2.0

Класс yii\base\DynamicModel

Все классы | Свойства | Методы | События | Константы
Наследование yii\base\DynamicModel » yii\base\Model » yii\base\Component » yii\base\Object
Реализует ArrayAccess, IteratorAggregate, yii\base\Arrayable, yii\base\Configurable
Использует Трейты yii\base\ArrayableTrait
Доступно с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/base/DynamicModel.php

DynamicModel — это класс модели, в первую очередь используемый для поддержки асинхронной проверки данных.

Типичное использование DynamicModel выглядит следующим образом:

public function actionSearch($name, $email)
{
    $model = DynamicModel::validateData(compact('name', 'email'), [
        [['name', 'email'], 'string', 'max' => 128],
        ['email', 'email'],
    ]);
    if ($model->hasErrors()) {
        // validation fails
    } else {
        // validation succeeds
    }
}

В приведенном выше примере показано, как проверить $name и $email с помощью DynamicModel. Метод validateData() создаёт экземпляр DynamicModel, определяет атрибуты, используя предоставленные данные (name и email в этом примере), и затем вызывает yii\base\Model::validate().

Вы можете проверить результат проверки с помощью hasErrors(), как и в случае с обычной моделью. Вы также можете получить доступ к динамическим атрибутам, определённым через экземпляр модели, например, $model->name и $model->email.

В качестве альтернативы, вы можете использовать следующий более "классический" синтаксис для выполнения проверки данных:

$model = new DynamicModel(compact('name', 'email'));
$model->addRule(['name', 'email'], 'string', ['max' => 128])
    ->addRule('email', 'email')
    ->validate();

DynamicModel реализует функцию асинхронной проверки данных, поддерживая так называемые "динамические атрибуты". Это в основном позволяет определять атрибут динамически через его конструктор или метод defineAttribute().

Публичные свойства

Свойство Тип Описание Определено в
$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\DynamicModel
__get() Возвращает значение свойства компонента. yii\base\DynamicModel
__isset() Проверяет, установлено ли свойство, т.е. определено и не равно null. yii\base\DynamicModel
__set() Устанавливает значение свойства компонента. yii\base\DynamicModel
__unset() Устанавливает свойство компонента в значение null. yii\base\DynamicModel
activeAttributes() Возвращает имена атрибутов, которые подлежат валидации в текущем сценарии. yii\base\Model
addError() Добавляет новую ошибку к указанному атрибуту. yii\base\Model
addErrors() Добавляет список ошибок. yii\base\Model
addRule() Добавляет правило валидации для этой модели. yii\base\DynamicModel
afterValidate() Этот метод вызывается после завершения валидации. yii\base\Model
attachBehavior() Присоединяет поведение к данному компоненту. yii\base\Component
attachBehaviors() Присоединяет список поведений к компоненту. yii\base\Component
attributeHints() Возвращает подсказки к атрибутам. yii\base\Model
attributeLabels() Возвращает метки атрибутов. yii\base\Model
attributes() Возвращает список имён атрибутов. yii\base\DynamicModel
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
defineAttribute() Определяет атрибут. yii\base\DynamicModel
detachBehavior() Отсоединяет поведение от компонента. yii\base\Component
detachBehaviors() Отсоединяет все поведения от компонента. yii\base\Component
ensureBehaviors() Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. yii\base\Component
extraFields() Возвращает список полей, которые могут быть расширены и возвращены методом toArray(). yii\base\ArrayableTrait
fields() Возвращает список полей, которые по умолчанию должны быть возвращены методом toArray(), если не указаны конкретные поля. yii\base\ArrayableTrait
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
undefineAttribute() Отменяет определение атрибута. yii\base\DynamicModel
validate() Выполняет проверку данных. yii\base\Model
validateData() Проверяет заданные данные с указанными правилами проверки. yii\base\DynamicModel
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

Подробное описание методов

__construct() метод public

Конструкторы.

public void __construct ( массив $attributes = [], $config = [] )
$attributes массив

Определяемые динамические атрибуты (пары имя-значение или имена)

$config массив

Массив конфигурации, который будет применён к этому объекту.

__get() метод public

Возвращает значение свойства компонента.

Этот метод будет проверять в следующем порядке и действовать соответственно:

  • свойство, определённое методом-геттером: возвращает результат геттера
  • свойство поведения: возвращает значение свойства поведения

Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при выполнении $value = $component->property;.

public mixed __get ( $name )
$name строка

Имя свойства

return mixed

Значение свойства или значение свойства поведения

throws yii\base\UnknownPropertyException

если свойство не определено

throws yii\base\InvalidCallException

если свойство только для записи.

__isset() метод public

Проверяет, установлено ли свойство, т.е. определено и не равно null.

Этот метод будет проверять в следующем порядке и действовать соответственно:

  • свойство, определённое методом-сеттером: возвращает, установлено ли свойство
  • свойство поведения: возвращает, установлено ли свойство
  • возвращает false для свойств, которые не существуют

Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при выполнении isset($component->property).

public boolean __isset ( $name )
$name строка

Имя свойства или имя события

return boolean

Установлено ли свойство с указанным именем

__set() метод public

Устанавливает значение свойства компонента.

Этот метод будет проверять в следующем порядке и действовать соответственно:

  • свойство, определённое методом-сеттером: устанавливает значение свойства
  • событие в формате "on xyz": прикрепляет обработчик к событию "xyz"
  • поведение в формате "as xyz": прикрепляет поведение с именем "xyz"
  • свойство поведения: устанавливает значение свойства поведения

Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при выполнении $component->property = $value;.

public void __set ( $name, $value )
$name строка

Имя свойства или имя события

$value mixed

Значение свойства

throws yii\base\UnknownPropertyException

если свойство не определено

throws yii\base\InvalidCallException

если свойство только для чтения.

__unset() метод public

Устанавливает свойство компонента в null.

Этот метод будет проверять в следующем порядке и действовать соответственно:

  • свойство, определённое методом-сеттером: устанавливает значение свойства в null
  • свойство поведения: устанавливает значение свойства в null

Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при выполнении unset($component->property).

public void __unset ( $name )
$name строка

Имя свойства

throws yii\base\InvalidCallException

если свойство только для чтения.

addRule() метод public

Добавляет правило валидации в эту модель.

Вы также можете напрямую манипулировать $validators для добавления или удаления правил валидации. Этот метод предоставляет сокращение.

public $this addRule ( $attributes, $validator, $options = [] )
$attributes строка|массив

Атрибут(ы), которые будут проверены по правилу

$validator mixed

Валидатор для правила. Это может быть встроенное имя валидатора, имя метода класса модели, анонимная функция или имя класса валидатора.

$options массив

Параметры (пары имя-значение), которые будут применены к валидатору

return $this

Сама модель

attributes() метод public

Возвращает список имён атрибутов.

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

public массив attributes ( )
return массив

Список имён атрибутов.

defineAttribute() метод public

Определяет атрибут.

public void defineAttribute ( $name, $value = null )
$name строка

Имя атрибута

$value mixed

Значение атрибута

undefineAttribute() метод public

Удаляет определение атрибута.

public void undefineAttribute ( $name )
$name строка

Имя атрибута

validateData() статический метод public

Проверяет предоставленные данные по заданным правилам валидации.

Этот метод создаёт экземпляр DynamicModel, заполняет его данными для проверки, создаёт указанные правила валидации и затем проверяет данные по этим правилам.

public static static validateData ( массив $data, $rules = [] )
$data массив

Данные (пары имя-значение) для проверки

$rules массив

Правила валидации. См. yii\base\Model::rules() для формата этого параметра.

return static

Экземпляр модели, который содержит проверяемые данные

throws yii\base\InvalidConfigException

если правило валидации указано некорректно.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-base-dynamicmodel.html

Spec-Zone.ru

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