/**
  * @param Queryable $repository
  * @return QueryBuilder
  */
 protected function doCreateQuery(Queryable $repository)
 {
     $queryBuilder = $repository->createQueryBuilder()->select('s')->from(ScopeEntity::class, 's');
     foreach ($this->filters as $filter) {
         $filter($queryBuilder);
     }
     return $queryBuilder;
 }
예제 #2
0
파일: Query.php 프로젝트: zaxxx/zaxcms
 protected function doCreateQuery(Kdyby\Persistence\Queryable $repository)
 {
     $qb = $repository->createQueryBuilder()->select('a, b, c, d')->from(Model\CMS\Entity\Article::getClassName(), 'a')->leftJoin('a.category', 'b')->leftJoin('a.tags', 'c')->leftJoin('a.authors', 'd');
     $this->applyFilters($qb);
     $qb->addOrderBy('a.createdAt', 'DESC');
     $query = $qb->getQuery()->useResultCache(TRUE, NULL, Model\CMS\Service\ArticleService::CACHE_TAG);
     return $query;
 }
예제 #3
0
 /**
  * @param Queryable|Kdyby\Doctrine\EntityDao $repository
  * @return NativeQueryBuilder
  */
 private function createBasicDql(Queryable $repository)
 {
     $qb = $repository->createQueryBuilder('Search');
     foreach ($this->filter as $modifier) {
         $modifier($qb);
     }
     return $qb;
 }
예제 #4
0
파일: Query.php 프로젝트: zaxxx/zaxcms
 protected function doCreateQuery(Kdyby\Persistence\Queryable $repository)
 {
     $qb = $repository->createQueryBuilder()->select('a.slug, a.firstName, a.surname, a.perex, a.image, COUNT(b) AS countArticles')->from(Model\CMS\Entity\Author::getClassName(), 'a')->leftJoin('a.articles', 'b')->groupBy('a.id')->addOrderBy('a.surname', 'ASC');
     //->addOrderBy('countArticles', 'DESC')
     //->addOrderBy('a.id', 'DESC');
     $this->applyFilters($qb);
     $query = $qb->getQuery()->useResultCache(TRUE, NULL, Model\CMS\Service\ArticleService::CACHE_TAG);
     return $query;
 }
예제 #5
0
파일: Query.php 프로젝트: zaxxx/zaxcms
 protected function doCreateQuery(Kdyby\Persistence\Queryable $repository)
 {
     $qb = $repository->createQueryBuilder()->select('perm', 'res', 'priv')->from(Model\CMS\Entity\Permission::getClassName(), 'perm')->join('perm.resource', 'res')->join('perm.privilege', 'priv')->orderBy('res.id, priv.id');
     $this->applyFilters($qb);
     $query = $qb->getQuery()->useResultCache(TRUE, NULL, Model\CMS\AclFactory::CACHE_TAG);
     $query->setHint(Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER, 'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker');
     $query->setHint(Gedmo\Translatable\TranslatableListener::HINT_TRANSLATABLE_LOCALE, $this->locale);
     return $query;
 }
예제 #6
0
 /**
  * @param \Kdyby\Persistence\Queryable $repository
  * @return \Doctrine\ORM\Query|\Doctrine\ORM\QueryBuilder
  */
 protected function doCreateQuery(Queryable $repository)
 {
     $qb = $repository->createQueryBuilder()->select('a')->from('App\\Entity', 'a');
     if ($this->_doCreateQuery) {
         call_user_func($this->_doCreateQuery, $qb);
     } else {
         $this->applyAllFilters($qb);
     }
     return $qb;
 }
예제 #7
0
파일: Query.php 프로젝트: zaxxx/zaxcms
 protected function doCreateQuery(Kdyby\Persistence\Queryable $repository)
 {
     $qb = $repository->createQueryBuilder()->select('a, b, c')->from(Model\CMS\Entity\User::getClassName(), 'a')->join('a.role', 'b')->join('a.login', 'c');
     $this->applyFilters($qb);
     $query = $qb->getQuery()->useResultCache(TRUE, NULL, Model\CMS\AclFactory::CACHE_TAG);
     if ($this->locale !== NULL) {
         $query->setHint(Gedmo\Translatable\TranslatableListener::HINT_TRANSLATABLE_LOCALE, $this->locale);
     }
     return $query;
 }
예제 #8
0
파일: Query.php 프로젝트: zaxxx/zaxcms
 protected function doCreateQuery(Kdyby\Persistence\Queryable $repository)
 {
     $qb = $repository->createQueryBuilder()->select('a')->from(Model\CMS\Entity\Page::getClassName(), 'a');
     $this->applyFilters($qb);
     return $qb->getQuery()->useResultCache(TRUE, NULL, Model\CMS\Service\PageService::CACHE_TAG);
 }
 /**
  * @param Queryable $repository
  * @return QueryBuilder
  */
 protected function doCreateQuery(Queryable $repository)
 {
     return $repository->createQueryBuilder('screenplay')->select('partial screenplay.{id}')->innerJoin('screenplay.episode', 'episode')->innerJoin('episode.season', 'season')->andWhere('season.language = :language')->setParameter('language', $this->language)->andWhere('screenplay.character IS NOT NULL');
 }