1919 */
2020trait UserAndContextValidatorsTrait
2121{
22- /**
23- * custom add's validator by addValidator()
24- * @var array
25- */
22+ /** @var array user custom add's validators */
2623 protected static $ _validators = [];
2724
2825 /** @var string */
@@ -55,22 +52,21 @@ trait UserAndContextValidatorsTrait
5552 public function addValidator (string $ name , callable $ callback , string $ msg = '' ): self
5653 {
5754 self ::setValidator ($ name , $ callback , $ msg );
58-
5955 return $ this ;
6056 }
6157
6258 /**
6359 * add a custom validator
6460 * @param string $name
6561 * @param callable $callback
66- * @param string $msg
62+ * @param string $message
6763 */
68- public static function setValidator (string $ name , callable $ callback , string $ msg = null )
64+ public static function setValidator (string $ name , callable $ callback , string $ message = '' )
6965 {
7066 self ::$ _validators [$ name ] = $ callback ;
7167
72- if ($ msg ) {
73- self ::setDefaultMessage ($ name , $ msg );
68+ if ($ message ) {
69+ self ::setDefaultMessage ($ name , $ message );
7470 }
7571 }
7672
@@ -404,7 +400,7 @@ public function mimesValidator(string $field, $types = null)
404400 }
405401
406402 /*******************************************************************************
407- * Special validators(require context data)
403+ * Field compare validators(require context data)
408404 ******************************************************************************/
409405
410406 /**
@@ -428,26 +424,48 @@ public function equalValidator($val, string $compareField): bool
428424 return $ this ->compareValidator ($ val , $ compareField );
429425 }
430426
427+ public function eqFieldValidator ($ val , string $ compareField ): bool
428+ {
429+ return $ this ->compareValidator ($ val , $ compareField );
430+ }
431+
431432 /**
432433 * 字段值比较:当前字段值是否与给定的字段值不相同
433434 * @param mixed $val
434435 * @param string $compareField
435436 * @return bool
436437 */
437- public function notEqualValidator ($ val , string $ compareField ): bool
438+ public function neqFieldValidator ($ val , string $ compareField ): bool
438439 {
439440 return $ compareField && ($ val !== $ this ->getByPath ($ compareField ));
440441 }
441442
443+ // TODO: gtFiled, ltField, gteField, lteField
444+
442445 /**
443- * alias of the 'notEqualValidator'
444- * @param mixed $val
445- * @param string $compareField
446+ * 字段值比较:当前字段值 要大于 给定字段的值
447+ * @param string|int $val
448+ * @param string $compareField
446449 * @return bool
447450 */
448- public function differentValidator ($ val , string $ compareField ): bool
451+ public function gtFieldValidator ($ val , string $ compareField ): bool
449452 {
450- return $ compareField && ($ val !== $ this ->getByPath ($ compareField ));
453+ $ minVal = $ this ->getByPath ($ compareField );
454+
455+ return Validators::gt ($ val , $ minVal );
456+ }
457+
458+ /**
459+ * 字段值比较:当前字段值 要大于等于 给定字段的值
460+ * @param string|int $val
461+ * @param string $compareField
462+ * @return bool
463+ */
464+ public function gteFieldValidator ($ val , string $ compareField ): bool
465+ {
466+ $ minVal = $ this ->getByPath ($ compareField );
467+
468+ return Validators::gte ($ val , $ minVal );
451469 }
452470
453471 /**
@@ -465,6 +483,19 @@ public function inFieldValidator($val, string $anotherField): bool
465483 return false ;
466484 }
467485
486+ /**
487+ * 比较两个日期字段的 间隔天数 是否符合要求
488+ * @todo
489+ * @param string $val
490+ * @param string $compareField
491+ * @param int $expected
492+ * @param string $op
493+ */
494+ public function intervalDayValidator ($ val , string $ compareField , int $ expected , string $ op = '>= ' )
495+ {
496+
497+ }
498+
468499 /**
469500 * 对数组中的每个值都应用给定的验证器,并且要全部通过
470501 * `['foo.*.id', 'each', 'number']`
@@ -518,19 +549,6 @@ public function eachValidator(array $values, ...$args): bool
518549 return true ;
519550 }
520551
521- /**
522- * 比较两个日期字段的 间隔天数 是否符合要求
523- * @todo
524- * @param string $val
525- * @param string $compareField
526- * @param int $expected
527- * @param string $op
528- */
529- public function intervalDayValidator ($ val , string $ compareField , int $ expected , string $ op = '>= ' )
530- {
531-
532- }
533-
534552 /*******************************************************************************
535553 * getter/setter/helper
536554 ******************************************************************************/
0 commit comments