mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-12 20:21:19 +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 #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 #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 #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 #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 #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)
|
- 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)
|
public function validate($attributeNames = null, $clearErrors = true)
|
||||||
{
|
{
|
||||||
|
if ($clearErrors) {
|
||||||
|
$this->clearErrors();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$this->beforeValidate()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$scenarios = $this->scenarios();
|
$scenarios = $this->scenarios();
|
||||||
$scenario = $this->getScenario();
|
$scenario = $this->getScenario();
|
||||||
if (!isset($scenarios[$scenario])) {
|
if (!isset($scenarios[$scenario])) {
|
||||||
throw new InvalidParamException("Unknown scenario: $scenario");
|
throw new InvalidParamException("Unknown scenario: $scenario");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($clearErrors) {
|
|
||||||
$this->clearErrors();
|
|
||||||
}
|
|
||||||
if ($attributeNames === null) {
|
if ($attributeNames === null) {
|
||||||
$attributeNames = $this->activeAttributes();
|
$attributeNames = $this->activeAttributes();
|
||||||
}
|
}
|
||||||
if ($this->beforeValidate()) {
|
|
||||||
foreach ($this->getActiveValidators() as $validator) {
|
foreach ($this->getActiveValidators() as $validator) {
|
||||||
$validator->validateAttributes($this, $attributeNames);
|
$validator->validateAttributes($this, $attributeNames);
|
||||||
}
|
}
|
||||||
@@ -331,9 +336,6 @@ class Model extends Component implements IteratorAggregate, ArrayAccess, Arrayab
|
|||||||
return !$this->hasErrors();
|
return !$this->hasErrors();
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method is invoked before validation starts.
|
* This method is invoked before validation starts.
|
||||||
* The default implementation raises a `beforeValidate` event.
|
* The default implementation raises a `beforeValidate` event.
|
||||||
|
|||||||
Reference in New Issue
Block a user