Php 如何获取Apigility API以使用自定义验证器?

Php 如何获取Apigility API以使用自定义验证器?,php,zend-framework,laminas-api-tools,zend-validate,Php,Zend Framework,Laminas Api Tools,Zend Validate,我编写了一个自定义验证器,它扩展了Zend\validator\AbstractValidator,用于检查基于Apigility的RESTAPI中的字段。我一直在挖掘文档和示例,但还没有看到这样做的示例 在我的module.config.php中,我已将其添加到input_filter_规范中验证器下的字段中。像这样: ... 'input_filter_specs' => [ 'Application\\V1\\Rest\\Class\\Validator' => [

我编写了一个自定义验证器,它扩展了Zend\validator\AbstractValidator,用于检查基于Apigility的RESTAPI中的字段。我一直在挖掘文档和示例,但还没有看到这样做的示例

在我的module.config.php中,我已将其添加到input_filter_规范中验证器下的字段中。像这样:

...

'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验证器都能按预期工作,但我的自定义验证器类不能

没有错误,它只是不能发射

谁能帮我找出我遗漏了什么?我还需要在其他地方注册验证器吗


TIA

您应该在可调用或工厂密钥下的配置的validators密钥中提到您的验证器。此外,Zend/Validator模块必须位于模块配置中。所以模块配置类似

return [
    'modules' => [
       ....
        'Zend\Validator',
        ....
    ]
];
和验证程序配置

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

这样,ValidatorManager将知道它是什么以及如何调用它。

这应该被接受为答案。我曾经遇到过同样的问题,忘记添加验证器配置密钥