public function childrenQueryBuilder(NavigationNode $node = NULL, $qbHook = NULL) { $qb = $this->createQueryBuilder('node'); if ($node) { $qb->where($qb->expr()->lt('node.rgt', $node->getRgt()))->andWhere($qb->expr()->gt('node.lft', $node->getLft())); $rootId = $node->getRoot(); $qb->andWhere($rootId === NULL ? $qb->expr()->isNull('node.root') : $qb->expr()->eq('node.root', is_string($rootId) ? $qb->expr()->literal($rootId) : $rootId)); } // context $qb->andWhere('node.context = :context')->setParameter('context', $this->context); $qb->orderBy('node.lft', 'ASC'); if (isset($qbHook)) { $qbHook($qb); } return $qb; }