Skip to content

Commit ca76e6e

Browse files
committed
bug fixed for collect rules, when sence is not empty.
1 parent 6c3eb98 commit ca76e6e

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

src/FieldValidation.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,16 +56,20 @@ protected function collectRules()
5656

5757
// an rule for special scene.
5858
if (!empty($rule['on'])) {
59+
if (!$scene) {
60+
continue;
61+
}
62+
5963
$sceneList = \is_string($rule['on']) ? Helper::explode($rule['on']) : (array)$rule['on'];
6064

61-
if ($scene && !\in_array($scene, $sceneList, true)) {
65+
if (!\in_array($scene, $sceneList, true)) {
6266
continue;
6367
}
6468

6569
unset($rule['on']);
66-
$this->_usedRules[] = $rule;
6770
}
6871

72+
$this->_usedRules[] = $rule;
6973
$field = array_shift($rule);
7074

7175
if (\is_object($rule[0])) {

src/ValidationTrait.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -402,22 +402,22 @@ protected function collectRules()
402402
throw new \InvalidArgumentException('The rule validator is must be setting! position: rule[1].');
403403
}
404404

405-
// global rule.
406-
if (empty($rule['on'])) {
407-
$this->_usedRules[] = $rule;
405+
// only use to special scene.
406+
if (!empty($rule['on'])) {
407+
if (!$scene) {
408+
continue;
409+
}
408410

409-
// only use to special scene.
410-
} else {
411411
$sceneList = \is_string($rule['on']) ? Helper::explode($rule['on']) : (array)$rule['on'];
412412

413-
if ($scene && !\in_array($scene, $sceneList, true)) {
413+
if (!\in_array($scene, $sceneList, true)) {
414414
continue;
415415
}
416416

417417
unset($rule['on']);
418-
$this->_usedRules[] = $rule;
419418
}
420419

420+
$this->_usedRules[] = $rule;
421421
$fields = array_shift($rule);
422422

423423
yield $fields => $this->prepareRule($rule);

0 commit comments

Comments
 (0)