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