浏览代码

[tree] fix nested tree repository for root id check

gediminasm 14 年之前
父节点
当前提交
bb5ae9c733
共有 1 个文件被更改,包括 8 次插入0 次删除
  1. 8 0
      lib/Gedmo/Tree/Entity/Repository/NestedTreeRepository.php

+ 8 - 0
lib/Gedmo/Tree/Entity/Repository/NestedTreeRepository.php

@@ -167,6 +167,10 @@ class NestedTreeRepository extends AbstractTreeRepository
                         ->from($config['useObjectClass'], 'node')
                         ->where('node.' . $config['parent'] . ' = ' . $id);
 
+                    if (isset($config['root'])) {
+                        $rootId = $meta->getReflectionProperty($config['root'])->getValue($node);
+                        $qb->andWhere("node.{$config['root']} = {$rootId}");
+                    }
                     $q = $qb->getQuery();
                     $count = intval($q->getSingleScalarResult());
                 } else {
@@ -225,6 +229,10 @@ class NestedTreeRepository extends AbstractTreeRepository
                             ->andWhere('node.' . $config['left'] . " > {$left}");
                     }
                 }
+                if (isset($config['root'])) {
+                    $rootId = $meta->getReflectionProperty($config['root'])->getValue($node);
+                    $qb->andWhere("node.{$config['root']} = {$rootId}");
+                }
             } else {
                 throw new \InvalidArgumentException("Node is not related to this repository");
             }