Sulu\Bundle\MediaBundle\Entity\MediaRepository::getIdsQuery PHP Method

getIdsQuery() private method

create a query for ids with given filter.
private getIdsQuery ( string $collection = null, boolean $systemCollections = true, array $types = null, string $search = null, string $orderBy = null, string $orderSort = null, integer $limit = null, integer $offset = null, string $select = 'media.id' ) : Doctrine\ORM\Query
$collection string
$systemCollections boolean
$types array
$search string
$orderBy string
$orderSort string
$limit integer
$offset integer
$select string
return Doctrine\ORM\Query
    private function getIdsQuery($collection = null, $systemCollections = true, $types = null, $search = null, $orderBy = null, $orderSort = null, $limit = null, $offset = null, $select = 'media.id')
    {
        $queryBuilder = $this->createQueryBuilder('media')->select($select);
        $queryBuilder->innerJoin('media.collection', 'collection');
        if (!empty($collection)) {
            $queryBuilder->andWhere('collection.id = :collection');
            $queryBuilder->setParameter('collection', $collection);
        }
        if (!$systemCollections) {
            $queryBuilder->leftJoin('collection.type', 'collectionType');
            $queryBuilder->andWhere(sprintf('collectionType.key != \'%s\'', SystemCollectionManagerInterface::COLLECTION_TYPE));
        }
        if (!empty($types)) {
            $queryBuilder->innerJoin('media.type', 'type');
            $queryBuilder->andWhere('type.name IN (:types)');
            $queryBuilder->setParameter('types', $types);
        }
        if (!empty($search)) {
            $queryBuilder->innerJoin('media.files', 'file')->innerJoin('file.fileVersions', 'fileVersion', 'WITH', 'fileVersion.version = file.version')->leftJoin('fileVersion.meta', 'fileVersionMeta');
            $queryBuilder->andWhere('fileVersionMeta.title LIKE :search');
            $queryBuilder->setParameter('search', '%' . $search . '%');
        }
        if ($offset) {
            $queryBuilder->setFirstResult($offset);
        }
        if ($limit) {
            $queryBuilder->setMaxResults($limit);
        }
        if (!empty($orderBy)) {
            $queryBuilder->addOrderBy($orderBy, $orderSort);
        }
        return $queryBuilder->getQuery();
    }