Sulu\Bundle\MediaBundle\Entity\MediaRepository::findMedia PHP Метод

findMedia() публичный Метод

public findMedia ( $filter = [], $limit = null, $offset = null, Sulu\Component\Security\Authentication\UserInterface $user = null, $permission = null )
$user Sulu\Component\Security\Authentication\UserInterface
    public function findMedia($filter = [], $limit = null, $offset = null, UserInterface $user = null, $permission = null)
    {
        list($collection, $systemCollections, $types, $search, $orderBy, $orderSort, $ids) = $this->extractFilterVars($filter);
        // if empty array of ids is requested return empty array of medias
        if ($ids !== null && count($ids) === 0) {
            return [];
        }
        if (empty($orderBy)) {
            $orderBy = 'media.id';
            $orderSort = 'asc';
        }
        if (!$ids) {
            $ids = $this->getIds($collection, $systemCollections, $types, $search, $orderBy, $orderSort, $limit, $offset);
        }
        $queryBuilder = $this->createQueryBuilder('media')->leftJoin('media.type', 'type')->leftJoin('media.collection', 'collection')->innerJoin('media.files', 'file')->innerJoin('file.fileVersions', 'fileVersion', 'WITH', 'fileVersion.version = file.version')->leftJoin('fileVersion.tags', 'tag')->leftJoin('fileVersion.meta', 'fileVersionMeta')->leftJoin('fileVersion.defaultMeta', 'fileVersionDefaultMeta')->leftJoin('fileVersion.contentLanguages', 'fileVersionContentLanguage')->leftJoin('fileVersion.publishLanguages', 'fileVersionPublishLanguage')->leftJoin('media.creator', 'creator')->leftJoin('creator.contact', 'creatorContact')->leftJoin('media.changer', 'changer')->leftJoin('changer.contact', 'changerContact')->addSelect('type')->addSelect('collection')->addSelect('file')->addSelect('tag')->addSelect('fileVersion')->addSelect('fileVersionMeta')->addSelect('fileVersionDefaultMeta')->addSelect('fileVersionContentLanguage')->addSelect('fileVersionPublishLanguage')->addSelect('creator')->addSelect('changer')->addSelect('creatorContact')->addSelect('changerContact');
        if ($ids !== null) {
            $queryBuilder->andWhere('media.id IN (:mediaIds)');
            $queryBuilder->setParameter('mediaIds', $ids);
        }
        $queryBuilder->addOrderBy($orderBy, $orderSort);
        if ($user !== null && $permission !== null) {
            $this->addAccessControl($queryBuilder, $user, $permission, Collection::class, 'collection');
        }
        return $queryBuilder->getQuery()->getResult();
    }