コード例 #1
0
 public function updateHierarchicalDatas(AbstractNestedNode $node, $leftnode = 1, $level = 0)
 {
     $node->setLeftnode($leftnode)->setLevel($level);
     if (0 < $node->getChildren()->count()) {
         $children = $this->createQueryBuilder('n')->andWhere("n._parent = :parent")->setParameters(array("parent" => $node))->orderBy('n._leftnode', 'asc')->getQuery()->getResult();
         foreach ($children as $child) {
             $child = $this->updateHierarchicalDatas($child, $leftnode + 1, $level + 1);
             $leftnode = $child->getRightnode();
         }
     }
     $node->setRightnode($leftnode + 1);
     $this->createQueryBuilder('n')->update()->set('n._leftnode', $node->getLeftnode())->set('n._rightnode', $node->getRightnode())->set('n._level', $node->getLevel())->where('n._uid = :uid')->setParameter('uid', $node->getUid())->getQuery()->execute();
     $this->_em->detach($node);
     return $node;
 }