From a5ed6abd880a9cb4783c1a9750fd92caffdbd1fd Mon Sep 17 00:00:00 2001 From: Jeremy Mikola Date: Thu, 8 Mar 2012 17:10:27 -0500 Subject: [PATCH] [DoctrineBridge] Rewind MongoCursor before use in unique validator Fixes a regression I introduced in: 265360d1426676cf9b0ff7a01e631546e22e3b63 --- .../Validator/Constraints/UniqueEntityValidator.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php b/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php index a9e03afc4a0e..4b8f58e9f630 100644 --- a/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php +++ b/src/Symfony/Bridge/Doctrine/Validator/Constraints/UniqueEntityValidator.php @@ -94,6 +94,14 @@ public function isValid($entity, Constraint $constraint) $repository = $em->getRepository($className); $result = $repository->findBy($criteria); + /* If the result is a MongoCursor, it must be advanced to the first + * element. Rewinding should have no ill effect if $result is another + * iterator implementation. + */ + if ($result instanceof \Iterator) { + $result->rewind(); + } + /* If no entity matched the query criteria or a single entity matched, * which is the same as the entity being validated, the criteria is * unique.