Skip to content

Commit 2664e22

Browse files
authored
Merge pull request #1680 from teohhanhui/closure-repo
Fix hardcoded field names in ClosureTreeRepository
2 parents 1e52dcc + f07c0ad commit 2664e22

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

lib/Gedmo/Tree/Entity/Repository/ClosureTreeRepository.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -448,8 +448,8 @@ public function verify()
448448
SELECT node.$nodeIdField AS id, node.$levelField AS node_level, MAX(c.depth) AS closure_level
449449
FROM {$nodeMeta->name} AS node
450450
INNER JOIN {$closureMeta->name} AS c WITH c.descendant = node.$nodeIdField
451-
GROUP BY node.id, node.level
452-
HAVING node_level IS NULL OR node_level <> closure_level
451+
GROUP BY node.$nodeIdField, node.$levelField
452+
HAVING node.$levelField IS NULL OR node.$levelField <> MAX(c.depth) + 1
453453
")->setMaxResults($maxResults);
454454

455455
if ($invalidLevelsCount = count($q->getScalarResult())) {
@@ -574,16 +574,16 @@ public function updateLevelValues()
574574
SELECT node.$nodeIdField AS id, node.$levelField AS node_level, MAX(c.depth) AS closure_level
575575
FROM {$nodeMeta->name} AS node
576576
INNER JOIN {$closureMeta->name} AS c WITH c.descendant = node.$nodeIdField
577-
GROUP BY node.id, node.level
578-
HAVING node_level IS NULL OR node_level <> closure_level
577+
GROUP BY node.$nodeIdField, node.$levelField
578+
HAVING node.$levelField IS NULL OR node.$levelField <> MAX(c.depth) + 1
579579
")->setMaxResults($batchSize)->setCacheable(false);
580580
do {
581581
$entries = $q->getScalarResult();
582582
$this->_em->getConnection()->beginTransaction();
583583
foreach ($entries as $entry) {
584584
unset($entry['node_level']);
585585
$this->_em->createQuery("
586-
UPDATE {$nodeMeta->name} AS node SET node.$levelField = :closure_level WHERE node.$nodeIdField = :id
586+
UPDATE {$nodeMeta->name} AS node SET node.$levelField = (:closure_level + 1) WHERE node.$nodeIdField = :id
587587
")->execute($entry);
588588
}
589589
$this->_em->getConnection()->commit();

0 commit comments

Comments
 (0)