From da7e4ed8deefc23b9529ad3d19cc562c9ea9d588 Mon Sep 17 00:00:00 2001 From: James Murray Date: Tue, 28 Oct 2014 17:59:37 -0400 Subject: [PATCH] removing orphaned scalar results and allowing mixed results when use new object expressions --- lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php | 2 -- lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php b/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php index 0cb037131..d7554b903 100644 --- a/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php +++ b/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php @@ -272,8 +272,6 @@ abstract class AbstractHydrator $rowData['newObjects'][$objIndex]['class'] = $cacheKeyInfo['class']; $rowData['newObjects'][$objIndex]['args'][$argIndex] = $value; - - $rowData['scalars'][$fieldName] = $value; break; case (isset($cacheKeyInfo['isScalar'])): diff --git a/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php b/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php index d4e84da92..9addc1d3c 100644 --- a/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php +++ b/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php @@ -545,14 +545,15 @@ class ObjectHydrator extends AbstractHydrator $resultKey = $this->resultCounter - 1; } - $count = count($rowData['newObjects']); + + $scalarCount = count($rowData['scalars']); foreach ($rowData['newObjects'] as $objIndex => $newObject) { $class = $newObject['class']; $args = $newObject['args']; $obj = $class->newInstanceArgs($args); - if ($count === 1) { + if (count($args) == $scalarCount) { $result[$resultKey] = $obj; continue;