Php 在Zend 2中注册自定义验证器

Php 在Zend 2中注册自定义验证器,php,zend-framework2,Php,Zend Framework2,我创建了一个自定义日期验证程序。但我一直收到这条错误消息: “Zend\Validator\ValidatorPluginManager::get无法获取或 为“日期验证程序”创建一个实例 我做了一些研究,并尝试在视图管理器数组之后添加module.config.php 'validators' => array( 'invokables' => array( 'date_validator' => 'Administrativo\InputFilter

我创建了一个自定义日期验证程序。但我一直收到这条错误消息:

“Zend\Validator\ValidatorPluginManager::get无法获取或 为“日期验证程序”创建一个实例

我做了一些研究,并尝试在视图管理器数组之后添加module.config.php

'validators' => array(
    'invokables' => array(
        'date_validator' => 'Administrativo\InputFilter\Date_Validator'
    ),
),

我这里缺少什么?

您的配置似乎还可以

您确定模块中的文件夹
Administrativo\InputFilter
中有一个名为
Date\u Validator
的文件(可调用类)

是该类中的名称空间
Administrativo\InputFilter
,是类名
Date\u Validator

重要的是类名命名空间以及文件夹名文件名必须正确。否则,PluginManager将无法找到您的文件


更新 如果所有这些都是好的,那么还有一些你应该检查


如果您通过配置数组构建输入过滤器,那么您应该确保该类包含正确填充的
InputFilterPluginManager
实例(带
ValidatorManager
FilterManager
)。否则,它将不会保存您的验证程序类。

您确定类名中没有输入错误吗?(特别是下划线)您使用的编辑器是什么?如果您有PHP5.5+,那么应该始终使用::class作为类名。是的,我已经仔细检查过这种打字错误了。我正在我的过滤器文件中导入类(使用Administrivo\InputFilter\Date\u Validator作为Date\u Validator;),然后在我的文件中我有这段代码。嗨,wilt,不,没有成功。我必须输入module.config.php:'invokables'=>数组(Administrivo\InputFilter\Date\U Validator'=>'Administrivo\InputFilter\Date\U Validator'),然后工作。谢谢你的时间!