エンティティマネージャがカスタムバリデータのリポジトリにアクセスできるようになるかどうかを知りたいですか?カスタムバリデータでエンティティマネージャを取得
バリデータをサービスとして宣言し、 "@ doctrine.orm.default_entity_manager"引数を与えようとしました。
もちろん、エンティティの注釈としてバリデーターを追加すると、サービスが呼び出されないため、もちろん機能しません。
検証するエンティティの注釈で呼び出したカスタムバリデータのリポジトリに到達する方法はありますか?
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator
class UniqueKeyValidator extends ConstraintValidator {
public function validate($value, Constraint $constraint) {
$entity = $this->context->getRoot()->getData();
... calling entity repository .....
}
}
マイサービス:
app.validator.unique:
class: MyBundle\Validator\Constraints\UniqueKeyValidator
arguments: ["@doctrine.orm.default_entity_manager"]
tags:
- { name: validator.constraint_validator }
は、あなたのバリデータのコードを投稿することができますか?設定が含まれています – Matteo