eee
This commit is contained in:
@@ -16,6 +16,7 @@ use Kiri\Router\Validator\Types\TypesProxy;
|
|||||||
use Kiri\Server\ServerInterface;
|
use Kiri\Server\ServerInterface;
|
||||||
use ReflectionNamedType;
|
use ReflectionNamedType;
|
||||||
use ReflectionUnionType;
|
use ReflectionUnionType;
|
||||||
|
use function inject;
|
||||||
|
|
||||||
#[\Attribute(\Attribute::TARGET_PARAMETER)]
|
#[\Attribute(\Attribute::TARGET_PARAMETER)]
|
||||||
class BindForm implements InjectParameterInterface
|
class BindForm implements InjectParameterInterface
|
||||||
@@ -43,15 +44,15 @@ class BindForm implements InjectParameterInterface
|
|||||||
$reflect = $container->getReflectionClass($this->formValidate);
|
$reflect = $container->getReflectionClass($this->formValidate);
|
||||||
$object = $validator->setFormData($reflect->newInstanceWithoutConstructor());
|
$object = $validator->setFormData($reflect->newInstanceWithoutConstructor());
|
||||||
foreach ($reflect->getProperties() as $property) {
|
foreach ($reflect->getProperties() as $property) {
|
||||||
foreach ($property->getAttributes() as $attribute) {
|
$ignoring = $property->getAttributes(Ignoring::class);
|
||||||
if (!class_exists($attribute->getName())) {
|
if (count($ignoring) == 0) {
|
||||||
continue;
|
$binding = $property->getAttributes(Binding::class);
|
||||||
}
|
if (count($binding) == 1) {
|
||||||
$rule = \inject($attribute->newInstance());
|
$attribute = current($binding);
|
||||||
|
$rule = inject($attribute->newInstance());
|
||||||
if ($rule instanceof RequestFilterInterface) {
|
if ($rule instanceof RequestFilterInterface) {
|
||||||
$validator->addRule($property->getName(), $rule->dispatch($object, $property->getName()));
|
$validator->addRule($property->getName(), $rule->dispatch($object, $property->getName()));
|
||||||
}
|
}
|
||||||
if ($rule instanceof Binding) {
|
|
||||||
$validator->setAlias($attribute->getName(), $rule->field);
|
$validator->setAlias($attribute->getName(), $rule->field);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user