This commit is contained in:
2023-04-16 03:51:18 +08:00
parent a38e02251b
commit eb561e20dc
2 changed files with 20 additions and 5 deletions
+2 -2
View File
@@ -26,12 +26,12 @@ class BindForm implements InjectParameterInterface
{
$validator = new Validator();
$reflect = \Kiri::getDi()->getReflectionClass($this->formValidate);
$model = $reflect->newInstanceWithoutConstructor();
$validator->setFormData($reflect->newInstanceWithoutConstructor());
foreach ($reflect->getProperties() as $property) {
foreach ($property->getAttributes() as $attribute) {
$rule = $attribute->newInstance();
if ($rule instanceof ValidatorInterface) {
$validator->addRule($property->getName(), $model, $rule);
$validator->addRule($property->getName(), $rule);
}
}
}
+18 -3
View File
@@ -23,16 +23,31 @@ class Validator
private object $formData;
/**
* @param object $formData
*/
public function setFormData(object $formData): void
{
$this->formData = $formData;
}
/**
* @return object
*/
public function getFormData(): object
{
return $this->formData;
}
/**
* @param string $name
* @param object $data
* @param ValidatorInterface $rule
* @return void
*/
public function addRule(string $name, object $data, ValidatorInterface $rule): void
public function addRule(string $name, ValidatorInterface $rule): void
{
$this->rules[$name] = $rule;
$this->formData = $data;
}