Sulu\Bundle\MediaBundle\Entity\CollectionRepository::findTree PHP Method

findTree() public method

public findTree ( $id, $locale )
    public function findTree($id, $locale)
    {
        $subQueryBuilder = $this->createQueryBuilder('subCollection')->select('subCollection.id')->leftJoin($this->_entityName, 'c', Join::WITH, 'c.id = :id')->andWhere('subCollection.lft <= c.lft AND subCollection.rgt > c.lft');
        $queryBuilder = $this->createQueryBuilder('collection')->addSelect('meta')->addSelect('defaultMeta')->addSelect('type')->addSelect('parent')->leftJoin('collection.meta', 'meta', Join::WITH, 'meta.locale = :locale')->leftJoin('collection.defaultMeta', 'defaultMeta')->innerJoin('collection.type', 'type')->leftJoin('collection.parent', 'parent')->where(sprintf('parent.id IN (%s)', $subQueryBuilder->getDQL()))->orWhere('parent.id is NULL')->orderBy('collection.lft')->setParameter('id', $id)->setParameter('locale', $locale);
        return $queryBuilder->getQuery()->getResult();
    }