mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	Fixes #3772: Behaviors adding validation rules do not work as expected
This commit is contained in:
		@ -44,6 +44,7 @@ Yii Framework 2 Change Log
 | 
			
		||||
- Bug #3751: Fixed postgreSQL schema data for enum values, do not add values if there are none (makroxyz)
 | 
			
		||||
- Bug #3752: `QueryBuilder::batchInsert()` does not typecast input values (qiangxue)
 | 
			
		||||
- Bug #3756: Fix number formatting error for `\yii\base\Formatter` by converting strings to float (kartik-v)
 | 
			
		||||
- Bug #3772: Behaviors adding validation rules do not work as expected (qiangxue)
 | 
			
		||||
- Bug #3817: `yii\rbac\PhpManager::getChildren()` returns null instead of expected empty array (qiangxue)
 | 
			
		||||
- Bug #3843: Fixed Menu bug when using `template` with `encodeLabel` => false (creocoder, umneeq)
 | 
			
		||||
- Bug #3863: Fixed incorrect js selector for `\yii\widgets\ActiveForm::errorSummaryCssClass` when it contains multiple classes (creocoder, umneeq)
 | 
			
		||||
 | 
			
		||||
@ -310,19 +310,24 @@ class Model extends Component implements IteratorAggregate, ArrayAccess, Arrayab
 | 
			
		||||
     */
 | 
			
		||||
    public function validate($attributeNames = null, $clearErrors = true)
 | 
			
		||||
    {
 | 
			
		||||
        if ($clearErrors) {
 | 
			
		||||
            $this->clearErrors();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!$this->beforeValidate()) {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $scenarios = $this->scenarios();
 | 
			
		||||
        $scenario = $this->getScenario();
 | 
			
		||||
        if (!isset($scenarios[$scenario])) {
 | 
			
		||||
            throw new InvalidParamException("Unknown scenario: $scenario");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if ($clearErrors) {
 | 
			
		||||
            $this->clearErrors();
 | 
			
		||||
        }
 | 
			
		||||
        if ($attributeNames === null) {
 | 
			
		||||
            $attributeNames = $this->activeAttributes();
 | 
			
		||||
        }
 | 
			
		||||
        if ($this->beforeValidate()) {
 | 
			
		||||
 | 
			
		||||
        foreach ($this->getActiveValidators() as $validator) {
 | 
			
		||||
            $validator->validateAttributes($this, $attributeNames);
 | 
			
		||||
        }
 | 
			
		||||
@ -331,9 +336,6 @@ class Model extends Component implements IteratorAggregate, ArrayAccess, Arrayab
 | 
			
		||||
        return !$this->hasErrors();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * This method is invoked before validation starts.
 | 
			
		||||
     * The default implementation raises a `beforeValidate` event.
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user