我正在使用注释从模型中构建元素集合。很少有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_manager
norvalidator_plugin_manager
键似乎不起作用。
另外我不知道为什么Form Factory
里面Annotation Builder
没有使用默认Validator Manager
服务,我必须手动设置它,因为它总是实例化新的(虽然Validator Manager
总是存在于Service Manager
):
$factory = new AnnotationBuilder();
$factory->getFormFactory()->getInputFilterFactory()->getDefaultValidatorChain()->setPluginManager($this->getServiceLocator()->get('ValidatorManager'));
如果可能的话,我希望在配置中完成此操作。