PHP Zend Framework 2 - 添加新的验证器

时间:2014-12-02 15:32:45

标签: php validation zend-framework zend-framework2

您好我是ZF2的新人,只是想为PESEL添加新的walidator。 我在/ library / Zend / Validator中创建了一个ZendValidatePesel.php文件,并从StringLength.php文件中复制了内容。更改ZendValidatePesel的课程名称。 现在,我正在尝试使用它:

                'validators' => array(
                    array(
                        'name' => 'ZendValidatePesel',
                        'options' => array(
                            'encoding' => 'UTF-8',
                            'min' => 11,
                            'max' => 11,
                        ),
                    ),
                ),

并收到错误:

Plik:
D:\xampp\htdocs\ZendHospital\vendor\zendframework\zendframework\library\Zend\ServiceManager\ServiceManager.php:529
Komunikat:
Zend\Validator\ValidatorPluginManager::get was unable to fetch or create an instance for ZendValidatePesel

请帮帮我..

1 个答案:

答案 0 :(得分:0)

首先,不要将验证器(或其他任何内容)添加到供应商名称空间中。而是将它放在应用程序代码中的某个位置。不知道你的应用是如何构建的,但我们可以说./module/YourModule/src/YourModule/Validator/ZendValidatePesel

然后用完整的,有资格的名称引用你的验证器类,所以按照我的猜测它会是这样的:

'validators' => array(
    array(
        'name' => 'YourModule\Validator\ZendValidatePesel', 
        'options' => array(
            // ...
        ),
),

据我所知,将直接为您实例化验证器。不那么有趣的事实:即使你在fqcn的同名下注册你的验证器,它也不会通过ValidatorPluginManager - 这是我希望的,或已经在框架中修复(如果有人让我知道,因为它最终会喜欢有依赖的验证器)。