Как мне получить API Apigility для использования моего пользовательского валидатора?

Я написал собственный валидатор, который расширяет Zend\Validator\AbstractValidator это предназначено для проверки поля в моем REST API на основе Apigility. Я копался в документации и примерах, и мне еще предстоит увидеть пример того, как это делается.

В моем module.config.php Я добавил его в поле под валидатором в input_filter_specs, Вот так:

...

'input_filter_specs' => [
'Application\\V1\\Rest\\Class\\Validator' => [
[
'type' => 'Float',
'required' => true,
'validators' => [
'name' => 'Zend\\I18n\\Validator\\IsFloat',
'options' => [],
],
'filters' => [],
'name' => 'aFloatParameter',
'description' => 'Float based parameter',
],
[
'type' => 'String',
'required' => false,
'validators' => [
'name' => 'Application\\Validator\\CustomValidator',
'options' => [],
],
'filters' => [],
'name' => 'parameterToValidate',
'description' => 'This is a parameter to be validator',
],
],

...

Когда я делаю запрос, все нативные валидаторы Zend работают должным образом, но мой пользовательский класс валидаторов — нет.

Ошибок нет, просто не срабатывает.

Может ли кто-нибудь помочь мне выяснить, что мне не хватает? Нужно ли регистрировать валидатор где-нибудь еще?

ТИА

0

Решение

Вы должны указать свой валидатор в validators ключ конфига под invokable или же factories ключ. Также Zend/Validator модуль должен быть в конфигурации ваших модулей. Таким образом, модули конфигурации, как;

return [
'modules' => [
....
'Zend\Validator',
....
]
];

и валидаторы конфигурации;

return [
'validators' => [
'invokables' => [
'Application\\Validator\\CustomValidator',
]
]
];

В этом случае, ValidatorManager будет знать, что это такое и как это назвать.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]