Package | system.validators |
---|---|
Inheritance | class CTypeValidator » CValidator » CComponent |
Since | 1.0 |
Source Code | framework/validators/CTypeValidator.php |
Property | Type | Description | Defined By |
---|---|---|---|
allowEmpty | boolean | whether the attribute value can be null or empty. | CTypeValidator |
attributes | array | list of attributes to be validated. | CValidator |
builtInValidators | array | list of built-in validators (name=>class) | CValidator |
dateFormat | string | the format pattern that the date value should follow. | CTypeValidator |
datetimeFormat | string | the format pattern that the datetime value should follow. | CTypeValidator |
enableClientValidation | boolean | whether to perform client-side validation. | CValidator |
except | array | list of scenarios that the validator should not be applied to. | CValidator |
message | string | the user-defined error message. | CValidator |
on | array | list of scenarios that the validator should be applied. | CValidator |
safe | boolean | whether attributes listed with this validator should be considered safe for massive assignment. | CValidator |
skipOnError | boolean | whether this validation rule should be skipped when there is already a validation error for the current attribute. | CValidator |
strict | boolean | whether the actual PHP type of attribute value should be checked. | CTypeValidator |
timeFormat | string | the format pattern that the time value should follow. | CTypeValidator |
type | string | the data type that the attribute should be. | CTypeValidator |
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
__isset() | Checks if a property value is null. | CComponent |
__set() | Sets value of a component property. | CComponent |
__unset() | Sets a component property to be null. | CComponent |
applyTo() | Returns a value indicating whether the validator applies to the specified scenario. | CValidator |
asa() | Returns the named behavior object. | CComponent |
attachBehavior() | Attaches a behavior to this component. | CComponent |
attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
attachEventHandler() | Attaches an event handler to an event. | CComponent |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
clientValidateAttribute() | Returns the JavaScript needed for performing client-side validation. | CValidator |
createValidator() | Creates a validator object. | CValidator |
detachBehavior() | Detaches a behavior from the component. | CComponent |
detachBehaviors() | Detaches all behaviors from the component. | CComponent |
detachEventHandler() | Detaches an existing event handler. | CComponent |
disableBehavior() | Disables an attached behavior. | CComponent |
disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
enableBehavior() | Enables an attached behavior. | CComponent |
enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
hasEvent() | Determines whether an event is defined. | CComponent |
hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
hasProperty() | Determines whether a property is defined. | CComponent |
raiseEvent() | Raises an event. | CComponent |
validate() | Validates the specified object. | CValidator |
validateValue() | Validates a static value. | CTypeValidator |
Method | Description | Defined By |
---|---|---|
addError() | Adds an error about the specified attribute to the active record. | CValidator |
isEmpty() | Checks if the given value is empty. | CValidator |
validateAttribute() | Validates the attribute of the object. | CTypeValidator |
public boolean $allowEmpty;
whether the attribute value can be null or empty. Defaults to true, meaning that if the attribute is empty, it is considered valid.
public string $dateFormat;
the format pattern that the date value should follow. Defaults to 'MM/dd/yyyy'. Please see CDateTimeParser for details about how to specify a date format. This property is effective only when type is 'date'.
public string $datetimeFormat;
the format pattern that the datetime value should follow. Defaults to 'MM/dd/yyyy hh:mm'. Please see CDateTimeParser for details about how to specify a datetime format. This property is effective only when type is 'datetime'.
public boolean $strict;
whether the actual PHP type of attribute value should be checked. Defaults to false, meaning that correctly formatted strings are accepted for integer and float validators.
public string $timeFormat;
the format pattern that the time value should follow. Defaults to 'hh:mm'. Please see CDateTimeParser for details about how to specify a time format. This property is effective only when type is 'time'.
public string $type;
the data type that the attribute should be. Defaults to 'string'. Valid values include 'string', 'integer', 'float', 'array', 'date', 'time' and 'datetime'.
protected void validateAttribute(CModel $object, string $attribute) | ||
$object | CModel | the object being validated |
$attribute | string | the attribute being validated |
protected function validateAttribute($object,$attribute)
{
$value=$object->$attribute;
if($this->allowEmpty && $this->isEmpty($value))
return;
if(!$this->validateValue($value))
{
$message=$this->message!==null?$this->message : Yii::t('yii','{attribute} must be {type}.');
$this->addError($object,$attribute,$message,array('{type}'=>$this->type));
}
}
Validates the attribute of the object. If there is any error, the error message is added to the object.
public boolean validateValue(mixed $value) | ||
$value | mixed | the value to be validated |
{return} | boolean | whether the value is valid |
public function validateValue($value)
{
$type=$this->type==='float' ? 'double' : $this->type;
if($type===gettype($value))
return true;
elseif($this->strict || is_array($value) || is_object($value) || is_resource($value) || is_bool($value))
return false;
if($type==='integer')
return (boolean)preg_match('/^[-+]?[0-9]+$/',trim($value));
elseif($type==='double')
return (boolean)preg_match('/^[-+]?([0-9]*\.)?[0-9]+([eE][-+]?[0-9]+)?$/',trim($value));
elseif($type==='date')
return CDateTimeParser::parse($value,$this->dateFormat,array('month'=>1,'day'=>1,'hour'=>0,'minute'=>0,'second'=>0))!==false;
elseif($type==='time')
return CDateTimeParser::parse($value,$this->timeFormat)!==false;
elseif($type==='datetime')
return CDateTimeParser::parse($value,$this->datetimeFormat, array('month'=>1,'day'=>1,'hour'=>0,'minute'=>0,'second'=>0))!==false;
return false;
}
Validates a static value. Note that this method does not respect allowEmpty property. This method is provided so that you can call it directly without going through the model validation rule mechanism.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CTypeValidator