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