From 705c33bc3573c1dd499ca8ea23b74334028d1847 Mon Sep 17 00:00:00 2001 From: Merixstudio Date: Thu, 20 Nov 2014 15:28:12 +0100 Subject: [PATCH] Fixed counting exception Fixed "Invalid parameter number: number of bound variables does not match number of tokens " exception during execution count on Query where select part of query contains :parameters. --- lib/Doctrine/ORM/Tools/Pagination/Paginator.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/Doctrine/ORM/Tools/Pagination/Paginator.php b/lib/Doctrine/ORM/Tools/Pagination/Paginator.php index ecace32f6..117690cb2 100755 --- a/lib/Doctrine/ORM/Tools/Pagination/Paginator.php +++ b/lib/Doctrine/ORM/Tools/Pagination/Paginator.php @@ -140,6 +140,16 @@ class Paginator implements \Countable, \IteratorAggregate $countQuery->setFirstResult(null)->setMaxResults(null); try { + $parser = new Query\Parser($countQuery); + $parameterMappings = $parser->parse($parser)->getParameterMappings(); + $parameters = $countQuery->getParameters(); + foreach($parameters as $k=>$param){ + if(!array_key_exists($param->getName(), $parameterMappings)){ + $parameters->remove($k); + } + } + $countQuery->setParameters($parameters); + $data = $countQuery->getScalarResult(); $data = array_map('current', $data); $this->count = array_sum($data);