Commit 1b891324 authored by zYne's avatar zYne

--no commit message

--no commit message
parent 063d0f87
...@@ -834,9 +834,11 @@ class Doctrine_Hydrate implements Serializable ...@@ -834,9 +834,11 @@ 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,11 +860,16 @@ class Doctrine_Hydrate implements Serializable ...@@ -857,11 +860,16 @@ 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]) {
// check the type of the relation if ( ! empty($currData[$alias])) {
if ( ! $relation->isOneToOne()) { // check the type of the relation
$prev[$parent][$component][] = $driver->getElement($currData[$alias], $componentName); if ( ! $relation->isOneToOne()) {
} else {
$prev[$parent][$component] = $driver->getElement($currData[$alias], $componentName); $prev[$parent][$component][] = $driver->getElement($currData[$alias], $componentName);
$driver->registerCollection($prev[$parent][$component]);
} else {
$prev[$parent][$component] = $driver->getElement($currData[$alias], $componentName);
}
} }
} }
} }
...@@ -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