Zend Framework 2 - 在输入过滤器中使用自定义验证器

时间:2016-10-11 22:27:02

标签: php zend-framework zend-framework2

我想在输入过滤器添加方法中使用自定义验证器。我使用的是最新版本的zend-validator软件包。

在我的module.config.php我有这个:

'validators' => [
    'invokables' => [
        'DoctrineRecordExists' => 'Utils\Validator\Doctrine\RecordExists',
        'NoDoctrineRecordExists' => 'Utils\Validator\Doctrine\NoRecordExists',
    ],
]

我在这里使用它:

$this->add([
    'name' => 'name',
    'required' => true,
    'validators' => [
        [
            'name' => 'StringLength',
            'options' => [
                'min' => 3,
                'max' => 20,
            ],
        ],
        [
            'name' => 'NoDoctrineRecordExists',
            'options' => [
                'repository' => 'Account\Entity\OAuthUser',
                'field' => 'name',
                'entityManager' => $this->getEntityManager(),
            ],
        ],
    ],
]);

但NoRecordExists的构造函数从未被调用过。我得到500错误,没有例外。如果我从输入过滤器中删除验证器,它将按预期工作。

我也在我的Module.php

中尝试了这个
public function getValidatorConfig() {
    return [
        'invokables' => [
            'DoctrineRecordExists' => 'Utils\Validator\Doctrine\RecordExists',
            'NoDoctrineRecordExists' => 'Utils\Validator\Doctrine\NoRecordExists',
        ],
    ];
}

但没有区别。

0 个答案:

没有答案