HosipLan

Untitled

Mar 28th, 2011
410
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.76 KB | None | 0 0
  1.  
  2. namespace Kdyby\Doctrine\Repositories;
  3.  
  4.  
  5. class NestedTreeRepository extends Gedmo\Tree\Entity\Repository\NestedTreeRepository
  6. {
  7.  
  8.     /**
  9.      * @param int $id
  10.      * @param int|NULL $maxLevel
  11.      * @return Kdyby\Doctrine\Entities\NestedNode
  12.      */
  13.     public function findTreeByRootId($id, $maxLevel = 0)
  14.     {
  15.         // prepare query
  16.         $qb = $this->createQueryBuilder('n')
  17.             ->select('n', 'ch')
  18.             ->innerJoin('n.children', 'ch')
  19.             ->where('n.nodeRoot = :id');
  20.  
  21.         $qb->setParameter('id', $id);
  22.  
  23.         if ($maxLevel > 0) {
  24.             $qb->andWhere('n.nodeLvl <= :lvl');
  25.             $qb->andWhere('ch.nodeLvl <= :lvl');
  26.  
  27.             $qb->setParameter('lvl', $maxLevel);
  28.         }
  29.  
  30.         // fetch result
  31.         $qb->getQuery()->getResult();
  32.  
  33.         // returns already managed entity
  34.         return $this->find($id);
  35.     }
  36.  
  37. }
Advertisement
Add Comment
Please, Sign In to add comment