Skip to content

Commit

Permalink
Fix duplicate items in HABTM associations.
Browse files Browse the repository at this point in the history
Apply patch from 'Kim Biesbjerg'.  Fixes issues where nested
HABTM associations would create duplicate content.

Fixes #2564
Fixes #1598

Conflicts:

	cake/libs/model/datasources/dbo_source.php
  • Loading branch information
markstory committed Feb 18, 2012
1 parent 52f4b08 commit 9558943
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions cake/libs/model/datasources/dbo_source.php
Expand Up @@ -1192,14 +1192,16 @@ function __mergeAssociation(&$data, $merge, $association, $type, $selfJoin = fal
}
} else {
foreach ($merge as $i => $row) {
if (count($row) == 1) {
if (empty($data[$association]) || (isset($data[$association]) && !in_array($row[$association], $data[$association]))) {
$data[$association][] = $row[$association];
}
} else if (!empty($row)) {
$tmp = array_merge($row[$association], $row);
unset($tmp[$association]);
$data[$association][] = $tmp;
$insert = array();
if (count($row) === 1) {
$insert = $row[$association];
} elseif (isset($row[$association])) {
$insert = array_merge($row[$association], $row);
unset($insert[$association]);
}

if (empty($data[$association]) || (isset($data[$association]) && !in_array($insert, $data[$association], true))) {
$data[$association][] = $insert;
}
}
}
Expand Down

0 comments on commit 9558943

Please sign in to comment.