Change the array access used in UniqueEntityValidator
convert iterator to array if it isnt already (mongodb) More specific if Dont do iterator_to_array if object implements \ArrayAccess CS fix
This commit is contained in:
parent
1bef14a02a
commit
928e352d09
@ -94,11 +94,17 @@ class UniqueEntityValidator extends ConstraintValidator
|
|||||||
$repository = $em->getRepository($className);
|
$repository = $em->getRepository($className);
|
||||||
$result = $repository->findBy($criteria);
|
$result = $repository->findBy($criteria);
|
||||||
|
|
||||||
|
// MongoDB will return a Cursor so we need to change it to an array
|
||||||
|
// so it is compatible with the orm returning an array
|
||||||
|
if ($result instanceof \Iterator && !$result instanceof \ArrayAccess) {
|
||||||
|
$result = iterator_to_array($result);
|
||||||
|
}
|
||||||
|
|
||||||
/* If no entity matched the query criteria or a single entity matched,
|
/* If no entity matched the query criteria or a single entity matched,
|
||||||
* which is the same as the entity being validated, the criteria is
|
* which is the same as the entity being validated, the criteria is
|
||||||
* unique.
|
* unique.
|
||||||
*/
|
*/
|
||||||
if (0 === count($result) || (1 === count($result) && $entity === $result[0])) {
|
if (0 === count($result) || (1 === count($result) && $entity === reset($result))) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user