CModel
| Package | system.base |
|---|---|
| Inheritance | abstract class CModel » CComponent |
| Implements | IteratorAggregate, Traversable, ArrayAccess |
| Subclasses | CActiveRecord, CFormModel |
| Since | 1.0 |
| Source Code | framework/base/CModel.php |
CModel определяет базовый каркас для моделей данных, которые необходимо валидировать.
Public Properties
| Property | Type | Description | Defined By |
|---|---|---|---|
| attributes | array | Возвращает все значения атрибутов. | CModel |
| errors | array | Возвращает ошибки для всех атрибутов или одного атрибута. | CModel |
| iterator | CMapIterator | Возвращает итератор для обхода атрибутов в модели. | CModel |
| safeAttributeNames | array | Возвращает имена атрибутов, которые безопасно массово назначать. | CModel |
| scenario | string | Возвращает сценарий, в котором используется эта модель. | CModel |
| validatorList | CList | Возвращает все валидаторы, объявленные в модели. | CModel |
| validators | array | Возвращает валидаторы, применимые к текущему сценарию. | CModel |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение в зависимости от его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства нулевым. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в значение null. | CComponent |
| addError() | Добавляет новую ошибку к указанному атрибуту. | CModel |
| addErrors() | Добавляет список ошибок. | CModel |
| asa() | Возвращает объект именованного поведения. | CComponent |
| attachBehavior() | Прикрепляет поведение к данному компоненту. | CComponent |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | CComponent |
| attachEventHandler() | Прикрепляет обработчик событий к событию. | CComponent |
| attributeLabels() | Возвращает метки атрибутов. | CModel |
| attributeNames() | Возвращает список имён атрибутов модели. | CModel |
| behaviors() | Возвращает список поведений, которые должна иметь эта модель. | CModel |
| canGetProperty() | Определяет, можно ли считать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| clearErrors() | Удаляет ошибки для всех атрибутов или для отдельного атрибута. | CModel |
| createValidators() | Создаёт объекты валидаторов на основе спецификаций в rules. | CModel |
| detachBehavior() | Открепляет поведение от компонента. | CComponent |
| detachBehaviors() | Открепляет все поведения от компонента. | CComponent |
| detachEventHandler() | Открепляет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает прикреплённое поведение. | CComponent |
| disableBehaviors() | Отключает все прикрепленные поведения к данному компоненту. | CComponent |
| enableBehavior() | Включает прикрепленное поведение. | CComponent |
| enableBehaviors() | Включает все прикрепленные поведения к данному компоненту. | CComponent |
| evaluateExpression() | Вычисляет PHP-выражение или обратный вызов в контексте данного компонента. | CComponent |
| generateAttributeLabel() | Генерирует удобную для пользователя метку атрибута. | CModel |
| getAttributeLabel() | Возвращает текстовую метку для указанного атрибута. | CModel |
| getAttributes() | Возвращает все значения атрибутов. | CModel |
| getError() | Возвращает первую ошибку указанного атрибута. | CModel |
| getErrors() | Возвращает ошибки для всех атрибутов или одного атрибута. | CModel |
| getEventHandlers() | Возвращает список прикреплённых обработчиков событий для события. | CComponent |
| getIterator() | Возвращает итератор для обхода атрибутов в модели. | CModel |
| getSafeAttributeNames() | Возвращает имена атрибутов, которые безопасны для массового присваивания. | CModel |
| getScenario() | Возвращает сценарий, в котором используется эта модель. | CModel |
| getValidatorList() | Возвращает все валидаторы, объявленные в модели. | CModel |
| getValidators() | Возвращает валидаторы, применимые к текущему сценарию. | CModel |
| hasErrors() | Возвращает значение, указывающее, есть ли ошибки валидации. | CModel |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли прикреплённые обработчики для заданного события. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| isAttributeRequired() | Возвращает значение, указывающее, является ли атрибут обязательным. | CModel |
| isAttributeSafe() | Возвращает значение, указывающее, безопасен ли атрибут для массового присваивания. | CModel |
| offsetExists() | Возвращает, существует ли элемент по указанному смещению. | CModel |
| offsetGet() | Возвращает элемент по указанному смещению. | CModel |
| offsetSet() | Устанавливает элемент по указанному смещению. | CModel |
| offsetUnset() | Удаляет элемент по указанному смещению. | CModel |
| onAfterConstruct() | Это событие срабатывает после создания экземпляра модели оператором new. | CModel |
| onAfterValidate() | Это событие срабатывает после выполнения валидации. | CModel |
| onBeforeValidate() | Это событие срабатывает перед выполнением валидации. | CModel |
| onUnsafeAttribute() | Этот метод вызывается, когда небезопасный атрибут присваивается массово. | CModel |
| raiseEvent() | Вызывает событие. | CComponent |
| rules() | Возвращает правила валидации для атрибутов. | CModel |
| setAttributes() | Устанавливает значения атрибутов массовым способом. | CModel |
| setScenario() | Устанавливает сценарий для модели. | CModel |
| unsetAttributes() | Устанавливает атрибуты в значение null. | CModel |
| validate() | Выполняет валидацию. | CModel |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| afterConstruct() | Этот метод вызывается после создания экземпляра модели оператором new. | CModel |
| afterValidate() | Этот метод вызывается после завершения валидации. | CModel |
| beforeValidate() | Этот метод вызывается перед началом валидации. | CModel |
События
| Событие | Описание | Определено в |
|---|---|---|
| onAfterConstruct | Это событие срабатывает после создания экземпляра модели оператором new. | CModel |
| onBeforeValidate | Это событие срабатывает перед выполнением валидации. | CModel |
| onAfterValidate | Это событие срабатывает после выполнения валидации. | CModel |
| onUnsafeAttribute | Этот метод вызывается при массовом присваивании небезопасного атрибута. | CModel |
Подробное описание свойств
attributes свойство
public array getAttributes(array $names=NULL)
public void setAttributes(array $values, boolean $safeOnly=true)
Возвращает все значения атрибутов.
errors свойство только для чтения
public array getErrors(string $attribute=NULL)
Возвращает ошибки для всех атрибутов или для одного атрибута.
iterator свойство только для чтения
public CMapIterator getIterator()
Возвращает итератор для обхода атрибутов в модели. Этот метод требуется интерфейсом IteratorAggregate.
safeAttributeNames свойство только для чтения
public array getSafeAttributeNames()
Возвращает имена атрибутов, которые можно безопасно присваивать массово. Безопасный атрибут — это атрибут, связанный с правилом валидации в текущем сценарии.
scenario свойство
public string getScenario()
public void setScenario(string $value)
Возвращает сценарий, в котором используется эта модель.
Сценарий влияет на то, как выполняется валидация и какие атрибуты можно присваивать массово.
Правило валидации будет выполнено при вызове validate(), если значение «except» не содержит текущее значение сценария, в то время как значение «on» не установлено или содержит текущее значение сценария.
Атрибут может быть присвоен массово, если он связан с правилом валидации для текущего сценария. Обратите внимание, что исключением является валидатор unsafe, который помечает связанные атрибуты как небезопасные и не разрешает их массовое присваивание.
validatorList свойство только для чтения (доступно с v1.1.2)
public CList getValidatorList()
Возвращает все валидаторы, объявленные в модели. Этот метод отличается от getValidators тем, что последний возвращает только валидаторы, применимые к текущему сценарию. Кроме того, так как этот метод возвращает объект CList, вы можете манипулировать им, вставляя или удаляя валидаторы (полезно в поведении). Например, $model->validatorList->add($newValidator). Внесённые изменения в объект CList сохранятся и будут отражены в результате следующего вызова getValidators.
validators свойство только для чтения
public array getValidators(string $attribute=NULL)
Возвращает валидаторы, применимые к текущему сценарию.
Подробное описание методов
addError() метод
public void addError(string $attribute, string $error) | ||
| $attribute | string | имя атрибута |
| $error | string | новое сообщение об ошибке |
public function addError($attribute,$error)
{
$this->_errors[$attribute][]=$error;
}
Добавляет новую ошибку к указанному атрибуту.
addErrors() метод
public void addErrors(array $errors) | ||
| $errors | array | список ошибок. Ключи массива должны быть именами атрибутов. Значения массива должны быть сообщениями об ошибках. Если у атрибута есть несколько ошибок, эти ошибки должны быть представлены в виде массива. Вы можете использовать результат getErrors в качестве значения для этого параметра. |
public function addErrors($errors)
{
foreach($errors as $attribute=>$error)
{
if(is_array($error))
{
foreach($error as $e)
$this->addError($attribute, $e);
}
else
$this->addError($attribute, $error);
}
}
Добавляет список ошибок.
afterConstruct() метод
protected void afterConstruct() |
protected function afterConstruct()
{
if($this->hasEventHandler('onAfterConstruct'))
$this->onAfterConstruct(new CEvent($this));
}
Этот метод вызывается после создания экземпляра модели оператором new. Стандартная реализация вызывает событие onAfterConstruct. Вы можете переопределить этот метод, чтобы выполнить постобработку после создания модели. Убедитесь, что вы вызываете родительскую реализацию, чтобы событие было вызвано должным образом.
afterValidate() метод
protected void afterValidate() |
protected function afterValidate()
{
$this->onAfterValidate(new CEvent($this));
}
Этот метод вызывается после завершения валидации. Стандартная реализация вызывает onAfterValidate для создания события. Вы можете переопределить этот метод, чтобы выполнить постобработку после валидации. Убедитесь, что вы вызываете родительскую реализацию, чтобы событие было вызвано.
attributeLabels() метод
public array attributeLabels() | ||
| {return} | array | метки атрибутов (имя=>метка) |
public function attributeLabels()
{
return array();
}
Возвращает метки атрибутов. Метки атрибутов используются в основном в сообщениях об ошибках валидации. По умолчанию метка атрибута генерируется с помощью generateAttributeLabel. Этот метод позволяет явно указать метки атрибутов.
Обратите внимание, что для наследования меток, определённых в родительском классе, дочерний класс должен объединить родительские метки с дочерними метками, используя функции, такие как array_merge().
См. также
attributeNames() метод
abstract public array attributeNames() | ||
| {return} | array | список имён атрибутов. |
Возвращает список имён атрибутов модели.
beforeValidate() метод
protected boolean beforeValidate() | ||
| {return} | boolean | является ли выполнение валидации. По умолчанию равно true. Если возвращено false, валидация прекращается, и модель считается невалидной. |
protected function beforeValidate()
{
$event=new CModelEvent($this);
$this->onBeforeValidate($event);
return $event->isValid;
}
Этот метод вызывается перед началом валидации. Стандартная реализация вызывает onBeforeValidate, чтобы создать событие. Вы можете переопределить этот метод, чтобы выполнить предварительные проверки перед валидацией. Убедитесь, что вызывается родительская реализация, чтобы событие могло быть создано.
behaviors() метод
public array behaviors() | ||
| {return} | array | конфигурации поведения (имя поведения=>конфигурация поведения) |
public function behaviors()
{
return array();
}
Возвращает список поведений, которые должна иметь эта модель. Возвращаемое значение должно быть массивом конфигураций поведения, индексированных по именам поведения. Каждая конфигурация поведения может быть либо строкой, указывающей класс поведения, либо массивом следующей структуры:
'behaviorName'=>array(
'class'=>'path.to.BehaviorClass',
'property1'=>'value1',
'property2'=>'value2',
)
Обратите внимание, что классы поведений должны реализовывать IBehavior или наследоваться от CBehavior. Поведения, объявленные в этом методе, будут присоединены к модели при её создании.
Для получения более подробной информации о поведении см. CComponent.
clearErrors() метод
public void clearErrors(string $attribute=NULL) | ||
| $attribute | строка | имя атрибута. Используйте null для удаления ошибок для всех атрибутов. |
public function clearErrors($attribute=null)
{
if($attribute===null)
$this->_errors=array();
else
unset($this->_errors[$attribute]);
}
Удаляет ошибки для всех атрибутов или одного атрибута.
createValidators() метод
public CList createValidators() | ||
| {return} | CList | валидаторы, созданные на основе rules(). |
public function createValidators()
{
$validators=new CList;
foreach($this->rules() as $rule)
{
if(isset($rule[0],$rule[1])) // attributes, validator name
$validators->add(CValidator::createValidator($rule[1],$this,$rule[0],array_slice($rule,2)));
else
throw new CException(Yii::t('yii','{class} has an invalid validation rule. The rule must specify attributes to be validated and the validator name.',
array('{class}'=>get_class($this))));
}
return $validators;
}
Создает объекты валидаторов на основе спецификации в правилах. Этот метод в основном используется внутри.
generateAttributeLabel() метод
public string generateAttributeLabel(string $name) | ||
| $name | строка | имя столбца |
| {return} | строка | метка атрибута |
public function generateAttributeLabel($name)
{
return ucwords(trim(strtolower(str_replace(array('-','_','.'),' ',preg_replace('/(?<![A-Z])[A-Z]/', ' \0', $name)))));
}
Генерирует метку атрибута, удобную для пользователя. Это делается путем замены символов подчеркивания или дефисов пробелами и изменения первой буквы каждого слова на заглавную. Например, «department_name» или «DepartmentName» становится «Department Name».
getAttributeLabel() метод
public string getAttributeLabel(string $attribute) | ||
| $attribute | строка | имя атрибута |
| {return} | строка | метка атрибута |
public function getAttributeLabel($attribute)
{
$labels=$this->attributeLabels();
if(isset($labels[$attribute]))
return $labels[$attribute];
else
return $this->generateAttributeLabel($attribute);
}
Возвращает текстовую метку для указанного атрибута.
См. также
getAttributes() метод
public array getAttributes(array $names=NULL) | ||
| $names | массив | список атрибутов, значения которых необходимо вернуть. По умолчанию равно null, что означает, что будут возвращены все атрибуты, перечисленные в attributeNames. Если это массив, будут возвращены только атрибуты из массива. |
| {return} | массив | значения атрибутов (имя=>значение). |
public function getAttributes($names=null)
{
$values=array();
foreach($this->attributeNames() as $name)
$values[$name]=$this->$name;
if(is_array($names))
{
$values2=array();
foreach($names as $name)
$values2[$name]=isset($values[$name]) ? $values[$name] : null;
return $values2;
}
else
return $values;
}
Возвращает все значения атрибутов.
getError() метод
public string getError(string $attribute) | ||
| $attribute | строка | имя атрибута. |
| {return} | строка | сообщение об ошибке. Возвращает null, если ошибки нет. |
public function getError($attribute)
{
return isset($this->_errors[$attribute]) ? reset($this->_errors[$attribute]) : null;
}
Возвращает первую ошибку указанного атрибута.
getErrors() метод
public array getErrors(string $attribute=NULL) | ||
| $attribute | строка | имя атрибута. Используйте null для получения ошибок для всех атрибутов. |
| {return} | массив | ошибки для всех атрибутов или указанного атрибута. Возвращает пустой массив, если ошибок нет. |
public function getErrors($attribute=null)
{
if($attribute===null)
return $this->_errors;
else
return isset($this->_errors[$attribute]) ? $this->_errors[$attribute] : array();
}
Возвращает ошибки для всех атрибутов или одного атрибута.
getIterator() метод
public CMapIterator getIterator() | ||
| {return} | CMapIterator | итератор для обхода элементов в списке. |
public function getIterator()
{
$attributes=$this->getAttributes();
return new CMapIterator($attributes);
}
Возвращает итератор для обхода атрибутов в модели. Этот метод требуется интерфейсом IteratorAggregate.
getSafeAttributeNames() метод
public array getSafeAttributeNames() | ||
| {return} | массив | безопасные имена атрибутов |
public function getSafeAttributeNames()
{
$attributes=array();
$unsafe=array();
foreach($this->getValidators() as $validator)
{
if(!$validator->safe)
{
foreach($validator->attributes as $name)
$unsafe[]=$name;
}
else
{
foreach($validator->attributes as $name)
$attributes[$name]=true;
}
}
foreach($unsafe as $name)
unset($attributes[$name]);
return array_keys($attributes);
}
Возвращает имена атрибутов, которые можно безопасно массово присваивать. Безопасный атрибут — это атрибут, связанный с правилом валидации в текущем сценарии.
getScenario() метод
public string getScenario() | ||
| {return} | строка | сценарий, в котором используется эта модель. |
public function getScenario()
{
return $this->_scenario;
}
Возвращает сценарий, в котором используется эта модель.
Сценарий влияет на то, как выполняется валидация, и на то, какие атрибуты можно массово присваивать.
Правило валидации будет выполнено при вызове validate(), если значение «except» не содержит текущего значения сценария, а опция «on» не установлена или содержит текущее значение сценария.
Атрибут можно массово присвоить, если он связан с правилом валидации для текущего сценария. Обратите внимание, что исключением является валидатор unsafe, который отмечает связанные атрибуты как небезопасные и не допускающие массового присвоения.
getValidatorList() метод (доступен начиная с v1.1.2)
public CList getValidatorList() | ||
| {return} | CList | все валидаторы, объявленные в модели. |
public function getValidatorList()
{
if($this->_validators===null)
$this->_validators=$this->createValidators();
return $this->_validators;
}
Возвращает все валидаторы, объявленные в модели. Этот метод отличается от getValidators тем, что последний возвращает только валидаторы, применимые к текущему сценарию. Кроме того, так как этот метод возвращает объект CList, вы можете его изменять, вставляя или удаляя валидаторы (что полезно в поведении). Например, $model->validatorList->add($newValidator). Изменения, внесенные в объект CList, сохранятся и будут отражены в результате следующего вызова getValidators.
getValidators() метод
public array getValidators(string $attribute=NULL) | ||
| $attribute | строка | имя атрибута, валидаторы которого необходимо вернуть. Если это null, будут возвращены валидаторы для ВСЕХ атрибутов модели. |
| {return} | массив | валидаторы, применимые к текущему сценарию. |
public function getValidators($attribute=null)
{
if($this->_validators===null)
$this->_validators=$this->createValidators();
$validators=array();
$scenario=$this->getScenario();
foreach($this->_validators as $validator)
{
if($validator->applyTo($scenario))
{
if($attribute===null || in_array($attribute,$validator->attributes,true))
$validators[]=$validator;
}
}
return $validators;
}
Возвращает валидаторы, применимые к текущему сценарию.
hasErrors() метод
public boolean hasErrors(string $attribute=NULL) | ||
| $attribute | string | имя атрибута. Используйте null для проверки всех атрибутов. |
| {return} | boolean | есть ли ошибка. |
public function hasErrors($attribute=null)
{
if($attribute===null)
return $this->_errors!==array();
else
return isset($this->_errors[$attribute]);
}
Возвращает значение, указывающее, есть ли ошибка валидации.
isAttributeRequired() метод
public boolean isAttributeRequired(string $attribute) | ||
| $attribute | string | имя атрибута |
| {return} | boolean | требуется ли атрибут |
public function isAttributeRequired($attribute)
{
foreach($this->getValidators($attribute) as $validator)
{
if($validator instanceof CRequiredValidator)
return true;
}
return false;
}
Возвращает значение, указывающее, требуется ли атрибут. Это определяется путем проверки, связан ли атрибут с правилом валидации CRequiredValidator в текущем сценарии.
isAttributeSafe() метод (доступен начиная с v1.1)
public boolean isAttributeSafe(string $attribute) | ||
| $attribute | string | имя атрибута |
| {return} | boolean | является ли атрибут безопасным для массовых назначений |
public function isAttributeSafe($attribute)
{
$attributes=$this->getSafeAttributeNames();
return in_array($attribute,$attributes);
}
Возвращает значение, указывающее, является ли атрибут безопасным для массовых назначений.
offsetExists() метод
public boolean offsetExists(mixed $offset) | ||
| $offset | mixed | офсет, который нужно проверить |
| {return} | boolean | |
public function offsetExists($offset)
{
return property_exists($this,$offset);
}
Возвращает, существует ли элемент по указанному офсету. Этот метод необходим для интерфейса ArrayAccess.
offsetGet() метод
public mixed offsetGet(integer $offset) | ||
| $offset | integer | офсет для получения элемента. |
| {return} | mixed | элемент по офсету, null, если элемент не найден по офсету |
public function offsetGet($offset)
{
return $this->$offset;
}
Возвращает элемент по указанному офсету. Этот метод необходим для интерфейса ArrayAccess.
offsetSet() метод
public void offsetSet(integer $offset, mixed $item) | ||
| $offset | integer | офсет для установки элемента |
| $item | mixed | значение элемента |
public function offsetSet($offset,$item)
{
$this->$offset=$item;
}
Устанавливает элемент по указанному офсету. Этот метод необходим для интерфейса ArrayAccess.
offsetUnset() метод
public void offsetUnset(mixed $offset) | ||
| $offset | mixed | офсет для удаления элемента |
public function offsetUnset($offset)
{
unset($this->$offset);
}
Удаляет элемент по указанному офсету. Этот метод необходим для интерфейса ArrayAccess.
onAfterConstruct() метод
public void onAfterConstruct(CEvent $event) | ||
| $event | CEvent | параметр события |
public function onAfterConstruct($event)
{
$this->raiseEvent('onAfterConstruct',$event);
}
Это событие срабатывает после создания экземпляра модели с помощью оператора new.
onAfterValidate() метод
public void onAfterValidate(CEvent $event) | ||
| $event | CEvent | параметр события |
public function onAfterValidate($event)
{
$this->raiseEvent('onAfterValidate',$event);
}
Это событие срабатывает после выполнения валидации.
onBeforeValidate() метод
public void onBeforeValidate(CModelEvent $event) | ||
| $event | CModelEvent | параметр события |
public function onBeforeValidate($event)
{
$this->raiseEvent('onBeforeValidate',$event);
}
Это событие срабатывает перед выполнением валидации.
onUnsafeAttribute() метод (доступен начиная с v1.1.1)
public void onUnsafeAttribute(string $name, mixed $value) | ||
| $name | string | имя небезопасного атрибута |
| $value | mixed | значение атрибута |
public function onUnsafeAttribute($name,$value)
{
if(YII_DEBUG)
Yii::log(Yii::t('yii','Failed to set unsafe attribute "{attribute}" of "{class}".',array('{attribute}'=>$name, '{class}'=>get_class($this))),CLogger::LEVEL_WARNING);
}
Этот метод вызывается, когда небезопасный атрибут назначается массово. По умолчанию, если YII_DEBUG включен, выводится сообщение об ошибке. В противном случае, ничего не делается.
rules() метод
public array rules() | ||
| {return} | array | правила валидации, применяемые при вызове validate(). |
Возвращает правила валидации для атрибутов.
Этот метод необходимо переопределить, чтобы объявить правила валидации. Каждое правило представляет собой массив со следующим структурой:
array('attribute list', 'validator name', 'on'=>'scenario name', ...validation parameters...)
где - список атрибутов: указывает атрибуты (разделенные запятыми) для проверки;
- имя валидатора: указывает используемый валидатор. Он может быть именем метода класса модели, именем встроенного валидатора или классом валидатора (или его псевдонимом пути). Метод валидации должен иметь следующий синтаксис:
// $params refers to validation parameters given in the rule function validatorName($attribute,$params)
Встроенный валидатор — это один из валидаторов, объявленных в CValidator::builtInValidators. Класс валидатора — это класс, расширяющий CValidator. - on: указывает сценарии, в которых должно выполняться правило валидации. Разделяйте разные сценарии запятыми. Если этот параметр не задан, правило будет применяться в любом сценарии, который не указан в "except". Подробнее см. сценарий.
- except: указывает сценарии, в которых правило валидации не должно выполняться. Разделяйте разные сценарии запятыми. Подробнее см. сценарий.
- дополнительные параметры используются для инициализации свойств соответствующего валидатора. Сведения о возможных свойствах см. в API соответствующего класса валидатора.
Вот несколько примеров:
array(
array('username', 'required'),
array('username', 'length', 'min'=>3, 'max'=>12),
array('password', 'compare', 'compareAttribute'=>'password2', 'on'=>'register'),
array('password', 'authenticate', 'on'=>'login'),
);
Обратите внимание, для наследования правил, определенных в родительском классе, дочерний класс должен объединить родительские правила с правилами дочернего класса с помощью функций, таких как array_merge().
См. также
setAttributes() метод
public void setAttributes(array $values, boolean $safeOnly=true) | ||
| $values | массив | значения атрибутов (имя=>значение) для установки. |
| $safeOnly | логическое | указывает, следует ли выполнять присваивание только для безопасных атрибутов. Безопасный атрибут — это атрибут, связанный с правилом валидации в текущем сценарии. |
public function setAttributes($values,$safeOnly=true)
{
if(!is_array($values))
return;
$attributes=array_flip($safeOnly ? $this->getSafeAttributeNames() : $this->attributeNames());
foreach($values as $name=>$value)
{
if(isset($attributes[$name]))
$this->$name=$value;
elseif($safeOnly)
$this->onUnsafeAttribute($name,$value);
}
}
Устанавливает значения атрибутов массовым способом.
См. также
setScenario() метод
public void setScenario(string $value) | ||
| $value | строка | сценарий, в котором находится эта модель. |
public function setScenario($value)
{
$this->_scenario=$value;
}
Устанавливает сценарий для модели.
См. также
unsetAttributes() метод (доступен начиная с v1.1.3)
public void unsetAttributes(array $names=NULL) | ||
| $names | массив | список атрибутов, которые должны быть установлены в null. Если этот параметр не задан, значения всех атрибутов, указанных в attributeNames, будут сброшены. |
public function unsetAttributes($names=null)
{
if($names===null)
$names=$this->attributeNames();
foreach($names as $name)
$this->$name=null;
}
Устанавливает атрибуты в null.
validate() метод
public boolean validate(array $attributes=NULL, boolean $clearErrors=true) | ||
| $attributes | массив | список атрибутов, которые должны быть проверены. По умолчанию null, что означает, что должны быть проверены все атрибуты, указанные в соответствующих правилах валидации. Если этот параметр задан как список атрибутов, будут проверены только указанные атрибуты. |
| $clearErrors | логическое | указывает, следует ли вызвать clearErrors перед выполнением валидации |
| {return} | логическое | указывает, успешно ли выполнена валидация без ошибок. |
public function validate($attributes=null, $clearErrors=true)
{
if($clearErrors)
$this->clearErrors();
if($this->beforeValidate())
{
foreach($this->getValidators() as $validator)
$validator->validate($this,$attributes);
$this->afterValidate();
return !$this->hasErrors();
}
else
return false;
}
Выполняет валидацию.
Этот метод выполняет правила валидации, объявленные в rules. Будут выполнены только правила, применимые к текущему сценарию. Правило считается применимым к сценарию, если его опция 'on' не установлена или содержит сценарий.
Ошибки, обнаруженные во время валидации, можно получить с помощью getErrors.
См. также
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CModel