我想在输入过滤器添加方法中使用自定义验证器。我使用的是最新版本的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',
],
];
}
但没有区别。