Commit 8c8a3898 by Qiang Xue

Fixes #3772: Behaviors adding validation rules do not work as expected

parent a252622d
......@@ -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.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment