Fix #18051: Fix missing support for custom validation method in EachValidator

This commit is contained in:
Bizley
2020-05-23 16:37:23 +02:00
committed by GitHub
parent f2d32fab77
commit 2a73a4ae3a
5 changed files with 24 additions and 4 deletions

View File

@ -8,6 +8,7 @@ Yii Framework 2 Change Log
- Enh #18019: Allow jQuery 3.5.0 to be installed (wouter90)
- Bug #18026: Fix `ArrayHelper::getValue()` did not work with `ArrayAccess` objects (mikk150)
- Enh #18048: Use `Instance::ensure()` to set `User::$accessChecker` (lav45)
- Bug #18051: Fix missing support for custom validation method in EachValidator (bizley)
2.0.35 May 02, 2020

View File

@ -209,10 +209,13 @@ class Validator extends Component
{
$params['attributes'] = $attributes;
if ($type instanceof \Closure || ($model->hasMethod($type) && !isset(static::$builtInValidators[$type]))) {
// method-based validator
if ($type instanceof \Closure) {
$params['class'] = __NAMESPACE__ . '\InlineValidator';
$params['method'] = $type;
} elseif (!isset(static::$builtInValidators[$type]) && $model->hasMethod($type)) {
// method-based validator
$params['class'] = __NAMESPACE__ . '\InlineValidator';
$params['method'] = [$model, $type];
} else {
if (isset(static::$builtInValidators[$type])) {
$type = static::$builtInValidators[$type];