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.
		
		
		
		
		
			
		
			
				
					
					
						
							44 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							44 lines
						
					
					
						
							1.1 KiB
						
					
					
				| <?php | |
|  | |
| namespace yiiunit\data\validators; | |
|  | |
|  | |
| use yii\validators\Validator; | |
|  | |
| class TestValidator extends Validator | |
| { | |
| 	private $_validatedAttributes = []; | |
| 	private $_setErrorOnValidateAttribute = false; | |
|  | |
| 	public function validateAttribute($object, $attribute) | |
| 	{ | |
| 		$this->markAttributeValidated($attribute); | |
| 		if ($this->_setErrorOnValidateAttribute == true) { | |
| 			$this->addError($object, $attribute, sprintf('%s##%s', $attribute, get_class($object))); | |
| 		} | |
| 	} | |
|  | |
| 	protected function markAttributeValidated($attr, $increaseBy = 1) | |
| 	{ | |
| 		if (!isset($this->_validatedAttributes[$attr])) { | |
| 			$this->_validatedAttributes[$attr] = 1; | |
| 		} else { | |
| 			$this->_validatedAttributes[$attr] = $this->_validatedAttributes[$attr] + $increaseBy; | |
| 		} | |
| 	} | |
|  | |
| 	public function countAttributeValidations($attr) | |
| 	{ | |
| 		return isset($this->_validatedAttributes[$attr]) ? $this->_validatedAttributes[$attr] : 0; | |
| 	} | |
|  | |
| 	public function isAttributeValidated($attr) | |
| 	{ | |
| 		return isset($this->_validatedAttributes[$attr]); | |
| 	} | |
|  | |
| 	public function enableErrorOnValidateAttribute() | |
| 	{ | |
| 		$this->_setErrorOnValidateAttribute = true; | |
| 	} | |
| } |