11<?php
2+
23/**
34 * Created by PhpStorm.
45 * User: inhere
@@ -24,12 +25,7 @@ class FieldValidation extends AbstractValidation
2425 */
2526 public function rules ()
2627 {
27- return [
28- // ['field', 'required|string:5,10|...', ...],
29- // ['field0', ['required', 'string:5,10'], ...],
30- // ['field1', 'rule1|rule2|...', ...],
31- // ['field2', 'rule1|rule3|...', ...],
32- ];
28+ return [];
3329 }
3430
3531 /**
@@ -39,46 +35,39 @@ public function rules()
3935 protected function collectRules ()
4036 {
4137 $ scene = $ this ->scene ;
42-
4338 // 循环规则, 搜集当前场景可用的规则
4439 foreach ($ this ->getRules () as $ rule ) {
4540 // check field
4641 if (!isset ($ rule [0 ]) || !$ rule [0 ]) {
4742 throw new \InvalidArgumentException ('Please setting the field(string) to wait validate! position: rule[0]. ' );
4843 }
49-
5044 // check validators
5145 if (!isset ($ rule [1 ]) || !$ rule [1 ]) {
5246 throw new \InvalidArgumentException ('The field validators must be is a validator name(s) string! position: rule[1]. ' );
5347 }
54-
5548 // an rule for special scene.
5649 if (!empty ($ rule ['on ' ])) {
5750 $ sceneList = \is_string ($ rule ['on ' ]) ? array_map ('trim ' , explode (', ' , $ rule ['on ' ])) : (array )$ rule ['on ' ];
58-
5951 if ($ scene && !\in_array ($ scene , $ sceneList , true )) {
6052 continue ;
6153 }
62-
6354 unset($ rule ['on ' ]);
6455 $ this ->_usedRules [] = $ rule ;
6556 }
66-
6757 $ field = array_shift ($ rule );
68-
6958 if (\is_object ($ rule [0 ])) {
70- yield $ field => $ rule ;
59+ ( yield $ field => $ rule) ;
7160 } else {
7261 // 'required|string:5,10;' OR 'required|in:5,10'
7362 $ rules = \is_array ($ rule [0 ]) ? $ rule [0 ] : array_map ('trim ' , explode ('| ' , $ rule [0 ]));
74-
7563 foreach ($ rules as $ aRule ) {
7664 $ rule = $ this ->parseRule ($ aRule , $ rule );
77-
78- yield $ field => $ rule ;
65+ (yield $ field => $ rule );
7966 }
8067 }
8168 }
69+
70+ yield [];
8271 }
8372
8473 /**
@@ -89,23 +78,20 @@ protected function collectRules()
8978 protected function parseRule ($ rule , $ row )
9079 {
9180 $ rule = trim ($ rule , ': ' );
92-
9381 if (false === strpos ($ rule , ': ' )) {
9482 $ row [0 ] = $ rule ;
83+
9584 return $ row ;
9685 }
97-
9886 list ($ name , $ args ) = explode (': ' , $ rule , 2 );
9987 $ args = trim ($ args , ', ' );
10088 $ row [0 ] = $ name ;
101-
10289 switch ($ name ) {
10390 case 'in ' :
10491 case 'enum ' :
10592 case 'ontIn ' :
10693 $ row [] = array_map ('trim ' , explode (', ' , $ args ));
10794 break ;
108-
10995 case 'size ' :
11096 case 'range ' :
11197 case 'string ' :
@@ -124,4 +110,4 @@ protected function parseRule($rule, $row)
124110
125111 return $ row ;
126112 }
127- }
113+ }
0 commit comments