繁体   English   中英

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

[英]How do I get Apigility API to use my custom validator?

我编写了一个自定义验证程序,该验证程序扩展了Zend\\Validator\\AbstractValidator ,该检查程序用于检查基于Apigility的REST API中的字段。 我一直在研究文档和示例,但尚未看到完成此操作的示例。

在我的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验证程序将按预期工作,但我的自定义验证程序类却无法正常工作。

没有错误,它只是不会触发。

谁能帮我弄清楚我所缺少的东西吗? 我还需要在其他地方注册验证器吗?

TIA

您应该在invokablefactories密钥下的config的验证validators密钥中提及您的验证validators Zend/Validator模块也必须在您的模块配置中。 所以模块配置像;

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

和验证器配置;

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM