我正在使用注释从模型中构建元素集合。很少有Zend\Validator\Db\NoRecordExists需要Zend\Db\Adapter\Adapter工作的字段正在使用。我是这样注入的:
public function getValidatorConfig()
{
return array(
'initializers' => array(
'Validator\Db' => function($instance, $sm) {
if ($instance instanceof NoRecordExists) {
$instance->setAdapter($sm->getServiceLocator()->get('dbAdapter'));
}
}
)
);
}
这可以通过顶级配置(准确地说/config/module.config.php)来完成吗?添加一个validator_managernorvalidator_plugin_manager键似乎不起作用。
另外我不知道为什么Form Factory里面Annotation Builder没有使用默认Validator Manager服务,我必须手动设置它,因为它总是实例化新的(虽然Validator Manager总是存在于Service Manager):
$factory = new AnnotationBuilder();
$factory->getFormFactory()->getInputFilterFactory()->getDefaultValidatorChain()->setPluginManager($this->getServiceLocator()->get('ValidatorManager'));
如果可能的话,我希望在配置中完成此操作。