@@ -770,7 +770,6 @@ public function testIssues21(): void
770770 ],
771771 ];
772772 $ rs = [
773- ['users.*.id ' , 'required ' ], // will passed. values like: [ArrayValueNotExists, ArrayValueNotExists]
774773 ['users.*.id ' , 'each ' , 'required ' ],
775774 ];
776775
@@ -790,6 +789,18 @@ public function testIssues21(): void
790789 $ this ->assertFalse ($ v ->isOk ());
791790 $ this ->assertSame ('users.*.id each value must be through the "required" verify ' , $ v ->firstError ());
792791
792+ $ rs = [
793+ ['users.*.id ' , 'required ' ], // will not pass.
794+ ];
795+
796+ $ v = RV ::check ($ d1 , $ rs );
797+ //parameter users.*.id is required!
798+ $ this ->assertFalse ($ v ->isOk ());
799+
800+ $ v = RV ::check ($ d2 , $ rs );
801+ //parameter users.*.id is required!
802+ $ this ->assertFalse ($ v ->isOk ());
803+
793804 $ d3 = [
794805 'users ' => [
795806 ['id ' => 1 , 'name ' => 'n1 ' ],
@@ -803,4 +814,31 @@ public function testIssues21(): void
803814
804815 $ this ->assertTrue ($ v ->isOk ());
805816 }
817+
818+ /**
819+ * @link https://github.com/inhere/php-validate/issues/33
820+ */
821+ public function testIssues33 (): void
822+ {
823+ $ d = [
824+ 'users ' => [
825+ ['id ' => 34 , 'name ' => 'tom ' ],
826+ ['id ' => 89 ],
827+ ],
828+ ];
829+
830+ $ rs1 = [
831+ ['users.*.name ' , 'each ' , 'required ' ],
832+ ['users.*.name ' , 'each ' , 'string ' ]
833+ ];
834+ $ v2 = RuleValidation::check ($ d , $ rs1 );
835+
836+ $ this ->assertTrue ($ v2 ->isFail ());
837+
838+ $ rs2 [] = ['users.*.name ' , 'each ' , 'string ' ];
839+
840+ $ v1 = RuleValidation::check ($ d , $ rs2 );
841+ $ this ->assertFalse ($ v1 ->isFail ());
842+ $ this ->assertTrue ($ v1 ->isOk ());
843+ }
806844}
0 commit comments