diff --git a/src/Rule.php b/src/Rule.php index 16d0e94..3bff599 100644 --- a/src/Rule.php +++ b/src/Rule.php @@ -43,6 +43,11 @@ public function setValidation(Validation $validation) $this->validation = $validation; } + public function getValidation() + { + return $this->validation; + } + /** * Set key * diff --git a/src/Validation.php b/src/Validation.php index d74786a..e523b79 100644 --- a/src/Validation.php +++ b/src/Validation.php @@ -489,13 +489,16 @@ protected function resolveRules($rules): array } $params = []; + if (is_string($rule)) { list($rulename, $params) = $this->parseRule($rule); $validator = call_user_func_array($validatorFactory, array_merge([$rulename], $params)); } elseif ($rule instanceof Rule) { $validator = $rule; } elseif ($rule instanceof Closure) { - $validator = call_user_func_array($validatorFactory, ['callback', $rule]); + $ruleName = is_string($i) ? $i : 'callback'; + $validator = call_user_func_array($validatorFactory, ['callback', $rule ]); + $validator->setKey($ruleName); } else { $ruleName = is_object($rule) ? get_class($rule) : gettype($rule); $message = "Rule must be a string, Closure or '".Rule::class."' instance. ".$ruleName." given";