モデルから要素コレクションを構築するためにアノテーションを使用しています。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_managernorキーを追加しても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'));
可能であれば、構成内でこれを実行したいと思います。