From df99353f1953b817f4007051b1cb96b27d3eeae7 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Thu, 27 Nov 2014 18:08:11 +0100 Subject: [PATCH] #1188 - Simplified and optimized parameter un-setting logic --- lib/Doctrine/ORM/Tools/Pagination/Paginator.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/Doctrine/ORM/Tools/Pagination/Paginator.php b/lib/Doctrine/ORM/Tools/Pagination/Paginator.php index 0aa7dc7b8..c45e2501b 100755 --- a/lib/Doctrine/ORM/Tools/Pagination/Paginator.php +++ b/lib/Doctrine/ORM/Tools/Pagination/Paginator.php @@ -258,13 +258,19 @@ class Paginator implements \Countable, \IteratorAggregate $parser = new Parser($countQuery); $parameterMappings = $parser->parse()->getParameterMappings(); - $parameters = $countQuery->getParameters(); - foreach ($parameters as $k => $param){ - if( ! array_key_exists($param->getName(), $parameterMappings)) { - $parameters->remove($k); + /* @var $parameters \Doctrine\Common\Collections\Collection|\Doctrine\ORM\Query\Parameter[] */ + $parameters = $countQuery->getParameters(); + + foreach ($parameters as $key => $parameter) { + $parameterName = $parameter->getName(); + + if( ! (isset($parameterMappings[$parameterName]) || array_key_exists($parameterName, $parameterMappings))) { + unset($parameters[$key]); } } + $countQuery->setParameters($parameters); + return $countQuery; } }