From d9c208236b40d2f7b7c7e18e35d033a03a5e0716 Mon Sep 17 00:00:00 2001 From: Romain Quetiez Date: Wed, 28 Jul 2010 14:38:41 +0000 Subject: [PATCH] #194 Fixed regression in DBObjectSet -due to the new feature "queries returning several objects" SVN:trunk[636] --- core/dbobjectset.class.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/core/dbobjectset.class.php b/core/dbobjectset.class.php index 3a8b25d9f..077cc4be3 100644 --- a/core/dbobjectset.class.php +++ b/core/dbobjectset.class.php @@ -273,15 +273,14 @@ class DBObjectSet public function AddObject($oObject, $sClassAlias = '') { - $sObjClass = get_class($oObject); if (strlen($sClassAlias) == 0) { - $sClassAlias = $sObjClass; + $sClassAlias = $this->m_oFilter->GetClassAlias(); } $iNextPos = count($this->m_aData); $this->m_aData[$iNextPos][$sClassAlias] = $oObject; - $this->m_aId2Row[$sObjClass][$oObject->GetKey()] = $iNextPos; + $this->m_aId2Row[$sClassAlias][$oObject->GetKey()] = $iNextPos; } protected function AddObjectExtended($aObjectArray) @@ -291,7 +290,7 @@ class DBObjectSet foreach ($aObjectArray as $sClassAlias => $oObject) { $this->m_aData[$iNextPos][$sClassAlias] = $oObject; - $this->m_aId2Row[get_class($oObject)][$oObject->GetKey()] = $iNextPos; + $this->m_aId2Row[$sClassAlias][$oObject->GetKey()] = $iNextPos; } } @@ -329,10 +328,11 @@ class DBObjectSet $oNewSet = DBObjectSet::FromScratch($this->GetClass()); + $sClassAlias = $this->m_oFilter->GetClassAlias(); $oObjectSet->Seek(0); while ($oObject = $oObjectSet->Fetch()) { - if (array_key_exists($oObject->GetKey(), $this->m_aId2Row)) + if (array_key_exists($oObject->GetKey(), $this->m_aId2Row[$sClassAlias])) { $oNewSet->AddObject($oObject); } @@ -350,10 +350,11 @@ class DBObjectSet $oNewSet = DBObjectSet::FromScratch($this->GetClass()); + $sClassAlias = $this->m_oFilter->GetClassAlias(); $oObjectSet->Seek(0); while ($oObject = $oObjectSet->Fetch()) { - if (!array_key_exists($oObject->GetKey(), $this->m_aId2Row)) + if (!array_key_exists($oObject->GetKey(), $this->m_aId2Row[$sClassAlias])) { $oNewSet->AddObject($oObject); }