You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							50 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							50 lines
						
					
					
						
							1.5 KiB
						
					
					
				<?php | 
						|
/** | 
						|
 * DefaultValueValidator class file. | 
						|
 * | 
						|
 * @link http://www.yiiframework.com/ | 
						|
 * @copyright Copyright © 2008-2012 Yii Software LLC | 
						|
 * @license http://www.yiiframework.com/license/ | 
						|
 */ | 
						|
 | 
						|
namespace yii\validators; | 
						|
 | 
						|
/** | 
						|
 * DefaultValueValidator sets the attribute to be the specified default value. | 
						|
 * | 
						|
 * By default, when the attribute being validated is [[isEmpty|empty]], the validator | 
						|
 * will assign a default [[value]] to it. However, if [[setOnEmpty]] is false, the validator | 
						|
 * will always assign the default [[value]] to the attribute, no matter it is empty or not. | 
						|
 * | 
						|
 * DefaultValueValidator is not really a validator. It is provided mainly to allow | 
						|
 * specifying attribute default values in a dynamic way. | 
						|
 * | 
						|
 * @author Qiang Xue <qiang.xue@gmail.com> | 
						|
 * @since 2.0 | 
						|
 */ | 
						|
class DefaultValueValidator extends Validator | 
						|
{ | 
						|
	/** | 
						|
	 * @var mixed the default value to be set to the specified attributes. | 
						|
	 */ | 
						|
	public $value; | 
						|
	/** | 
						|
	 * @var boolean whether to set the default [[value]] only when the attribute is [[isEmpty|empty]]. | 
						|
	 * Defaults to true. If false, the attribute will always be assigned with the default [[value]], | 
						|
	 * no matter it is empty or not. | 
						|
	 */ | 
						|
	public $setOnEmpty = true; | 
						|
 | 
						|
	/** | 
						|
	 * Validates the attribute of the object. | 
						|
	 * @param \yii\base\Model $object the object being validated | 
						|
	 * @param string $attribute the attribute being validated | 
						|
	 */ | 
						|
	public function validateAttribute($object, $attribute) | 
						|
	{ | 
						|
		if (!$this->setOnEmpty || $this->isEmpty($object->$attribute)) { | 
						|
			$object->$attribute = $this->value; | 
						|
		} | 
						|
	} | 
						|
} | 
						|
 | 
						|
 |