Commit 1b891324 authored by zYne's avatar zYne

--no commit message

--no commit message
parent 063d0f87
...@@ -834,10 +834,12 @@ class Doctrine_Hydrate implements Serializable ...@@ -834,10 +834,12 @@ class Doctrine_Hydrate implements Serializable
if ( ! isset($currData[$alias])) { if ( ! isset($currData[$alias])) {
$currData[$alias] = array(); $currData[$alias] = array();
} }
if ( ! isset($prev[$alias])) { if ( ! isset($prev[$alias])) {
$prev[$alias] = array(); $prev[$alias] = array();
} }
if ($alias !== $lastAlias || $parse) { if ($alias !== $lastAlias || $parse) {
// component changed // component changed
...@@ -849,6 +851,7 @@ class Doctrine_Hydrate implements Serializable ...@@ -849,6 +851,7 @@ class Doctrine_Hydrate implements Serializable
$array[$index] = $driver->getElement($currData[$alias], $componentName); $array[$index] = $driver->getElement($currData[$alias], $componentName);
$prev[$alias] =& $array[$index]; $prev[$alias] =& $array[$index];
$index++; $index++;
} }
} }
...@@ -857,14 +860,19 @@ class Doctrine_Hydrate implements Serializable ...@@ -857,14 +860,19 @@ class Doctrine_Hydrate implements Serializable
$relation = $this->_aliasMap[$cache[$key]['alias']]['relation']; $relation = $this->_aliasMap[$cache[$key]['alias']]['relation'];
if ( ! isset($prevData[$alias]) || $currData[$alias] !== $prevData[$alias]) { if ( ! isset($prevData[$alias]) || $currData[$alias] !== $prevData[$alias]) {
if ( ! empty($currData[$alias])) {
// check the type of the relation // check the type of the relation
if ( ! $relation->isOneToOne()) { if ( ! $relation->isOneToOne()) {
$prev[$parent][$component][] = $driver->getElement($currData[$alias], $componentName); $prev[$parent][$component][] = $driver->getElement($currData[$alias], $componentName);
$driver->registerCollection($prev[$parent][$component]);
} else { } else {
$prev[$parent][$component] = $driver->getElement($currData[$alias], $componentName); $prev[$parent][$component] = $driver->getElement($currData[$alias], $componentName);
} }
} }
} }
}
if (isset($currData[$alias])) { if (isset($currData[$alias])) {
$prevData[$alias] = $currData[$alias]; $prevData[$alias] = $currData[$alias];
} else { } else {
...@@ -905,6 +913,7 @@ class Doctrine_Hydrate implements Serializable ...@@ -905,6 +913,7 @@ class Doctrine_Hydrate implements Serializable
// check the type of the relation // check the type of the relation
if ( ! $relation->isOneToOne()) { if ( ! $relation->isOneToOne()) {
$prev[$parent][$component][] = $driver->getElement($currData[$alias], $componentName); $prev[$parent][$component][] = $driver->getElement($currData[$alias], $componentName);
$driver->registerCollection($prev[$parent][$component]);
} else { } else {
$prev[$parent][$component] = $driver->getElement($currData[$alias], $componentName); $prev[$parent][$component] = $driver->getElement($currData[$alias], $componentName);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment