From 41bdf26cb2e0681d33dd47160aa1359396e43f4a Mon Sep 17 00:00:00 2001 From: Jeremy Mikola Date: Fri, 13 Apr 2012 14:12:49 -0400 Subject: [PATCH] [DoctrineBridge] Initialize proxies in UniqueEntityValidator Fixes #3163 --- .../Validator/Constraints/UniqueEntityValidator.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php b/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php index 6777831b0f..dc4e125e9a 100644 --- a/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php +++ b/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php @@ -78,6 +78,12 @@ class UniqueEntityValidator extends ConstraintValidator } if ($class->hasAssociation($fieldName)) { + /* Ensure the Proxy is initialized before using reflection to + * read its identifiers. This is necessary because the wrapped + * getter methods in the Proxy are being bypassed. + */ + $em->initializeObject($criteria[$fieldName]); + $relatedClass = $em->getClassMetadata($class->getAssociationTargetClass($fieldName)); $relatedId = $relatedClass->getIdentifierValues($criteria[$fieldName]);