DDC-1385 - Refactor ObjectHydrator
This commit is contained in:
parent
cb0e5dbff3
commit
2730f64d90
@ -428,32 +428,32 @@ class ObjectHydrator extends AbstractHydrator
|
|||||||
// check for existing result from the iterations before
|
// check for existing result from the iterations before
|
||||||
if ( ! isset($this->_identifierMap[$dqlAlias][$id[$dqlAlias]])) {
|
if ( ! isset($this->_identifierMap[$dqlAlias][$id[$dqlAlias]])) {
|
||||||
$element = $this->_getEntity($rowData[$dqlAlias], $dqlAlias);
|
$element = $this->_getEntity($rowData[$dqlAlias], $dqlAlias);
|
||||||
|
if ($this->_rsm->isMixed) {
|
||||||
|
$element = array(0 => $element);
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($this->_rsm->indexByMap[$dqlAlias])) {
|
if (isset($this->_rsm->indexByMap[$dqlAlias])) {
|
||||||
$field = $this->_rsm->indexByMap[$dqlAlias];
|
$field = $this->_rsm->indexByMap[$dqlAlias];
|
||||||
$resultKey = $this->_ce[$entityName]->reflFields[$field]->getValue($element);
|
$resultKey = $rowData[$dqlAlias][$field];
|
||||||
if ($this->_rsm->isMixed) {
|
|
||||||
$element = array(0 => $element);
|
|
||||||
}
|
|
||||||
|
|
||||||
$result[$resultKey] = $element;
|
|
||||||
$this->_identifierMap[$dqlAlias][$id[$dqlAlias]] = $resultKey;
|
|
||||||
|
|
||||||
if (isset($this->_hints['collection'])) {
|
if (isset($this->_hints['collection'])) {
|
||||||
$this->_hints['collection']->hydrateSet($resultKey, $element);
|
$this->_hints['collection']->hydrateSet($resultKey, $element);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$result[$resultKey] = $element;
|
||||||
} else {
|
} else {
|
||||||
if ($this->_rsm->isMixed) {
|
$resultKey = $this->_resultCounter;
|
||||||
$element = array(0 => $element);
|
|
||||||
}
|
|
||||||
$result[] = $element;
|
|
||||||
$this->_identifierMap[$dqlAlias][$id[$dqlAlias]] = $this->_resultCounter;
|
|
||||||
++$this->_resultCounter;
|
++$this->_resultCounter;
|
||||||
|
|
||||||
if (isset($this->_hints['collection'])) {
|
if (isset($this->_hints['collection'])) {
|
||||||
$this->_hints['collection']->hydrateAdd($element);
|
$this->_hints['collection']->hydrateAdd($element);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$result[] = $element;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->_identifierMap[$dqlAlias][$id[$dqlAlias]] = $resultKey;
|
||||||
|
|
||||||
// Update result pointer
|
// Update result pointer
|
||||||
$this->_resultPointers[$dqlAlias] = $element;
|
$this->_resultPointers[$dqlAlias] = $element;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user