コード例 #1
0
ファイル: CustomerRepository.php プロジェクト: Onnit/Sylius
 /**
  * @param array $criteria
  * @param array $sorting
  * @param bool  $deleted
  *
  * @return Pagerfanta
  */
 public function createFilterPaginator($criteria = array(), $sorting = array(), $deleted = false)
 {
     $queryBuilder = parent::getCollectionQueryBuilder()->leftJoin($this->getPropertyName('user'), 'user');
     if ($deleted) {
         $this->_em->getFilters()->disable('softdeleteable');
     }
     if (isset($criteria['query'])) {
         // Every tokenized search term should appear in at least one of the searchable fields,
         // for the entity to be included in the filtered results.
         $queryParts = preg_split('/\\s+/', $criteria['query']);
         for ($i = 0; $i < count($queryParts); $i++) {
             $queryBuilder->andWhere($queryBuilder->expr()->orX($queryBuilder->expr()->like($this->getPropertyName('emailCanonical'), ":query{$i}"), $queryBuilder->expr()->like($this->getPropertyName('firstName'), ":query{$i}"), $queryBuilder->expr()->like($this->getPropertyName('lastName'), ":query{$i}"), $queryBuilder->expr()->like('user.username', ":query{$i}")))->setParameter("query{$i}", '%' . $queryParts[$i] . '%');
         }
     }
     if (isset($criteria['enabled'])) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('user.enabled', ':enabled'))->setParameter('enabled', $criteria['enabled']);
     }
     if (empty($sorting)) {
         if (!is_array($sorting)) {
             $sorting = array();
         }
         $sorting['updatedAt'] = 'desc';
     }
     $this->applySorting($queryBuilder, $sorting);
     return $this->getPaginator($queryBuilder);
 }
コード例 #2
0
 /**
  * @param array $criteria
  * @param array $sorting
  *
  * @return Pagerfanta
  */
 public function createFilterPaginator($criteria = [], $sorting = [])
 {
     $queryBuilder = parent::getCollectionQueryBuilder();
     if (isset($criteria['query'])) {
         $queryBuilder->leftJoin($this->getAlias() . '.customer', 'customer')->where('customer.emailCanonical LIKE :query')->orWhere('customer.firstName LIKE :query')->orWhere('customer.lastName LIKE :query')->orWhere($this->getAlias() . '.username LIKE :query')->setParameter('query', '%' . $criteria['query'] . '%');
     }
     if (isset($criteria['enabled'])) {
         $queryBuilder->andWhere('o.enabled = :enabled')->setParameter('enabled', $criteria['enabled']);
     }
     if (empty($sorting)) {
         if (!is_array($sorting)) {
             $sorting = [];
         }
         $sorting['updatedAt'] = 'desc';
     }
     $this->applySorting($queryBuilder, $sorting);
     return $this->getPaginator($queryBuilder);
 }
コード例 #3
0
 /**
  * @param array $criteria
  * @param array $sorting
  *
  * @return Pagerfanta
  */
 public function createFilterPaginator($criteria = [], $sorting = [])
 {
     $queryBuilder = parent::getCollectionQueryBuilder()->leftJoin($this->getPropertyName('user'), 'user');
     if (isset($criteria['query'])) {
         $queryBuilder->where($queryBuilder->expr()->like($this->getPropertyName('emailCanonical'), ':query'))->orWhere($queryBuilder->expr()->like($this->getPropertyName('firstName'), ':query'))->orWhere($queryBuilder->expr()->like($this->getPropertyName('lastName'), ':query'))->orWhere($queryBuilder->expr()->like('user.username', ':query'))->setParameter('query', '%' . $criteria['query'] . '%');
     }
     if (isset($criteria['enabled'])) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('user.enabled', ':enabled'))->setParameter('enabled', $criteria['enabled']);
     }
     if (empty($sorting)) {
         if (!is_array($sorting)) {
             $sorting = [];
         }
         $sorting['updatedAt'] = 'desc';
     }
     $this->applySorting($queryBuilder, $sorting);
     return $this->getPaginator($queryBuilder);
 }
コード例 #4
0
ファイル: UserRepository.php プロジェクト: Avazanga1/Sylius
 /**
  * Create filter paginator.
  *
  * @param array $criteria
  * @param array $sorting
  * @param bool  $deleted
  *
  * @return PagerfantaInterface
  */
 public function createFilterPaginator($criteria = array(), $sorting = array(), $deleted = false)
 {
     $queryBuilder = parent::getCollectionQueryBuilder();
     if ($deleted) {
         $this->_em->getFilters()->disable('softdeleteable');
     }
     if (isset($criteria['query'])) {
         $queryBuilder->where('o.username LIKE :query')->orWhere('o.email LIKE :query')->orWhere('o.firstName LIKE :query')->orWhere('o.lastName LIKE :query')->setParameter('query', '%' . $criteria['query'] . '%');
     }
     if (isset($criteria['enabled'])) {
         $queryBuilder->andWhere('o.enabled = :enabled')->setParameter('enabled', $criteria['enabled']);
     }
     if (empty($sorting)) {
         if (!is_array($sorting)) {
             $sorting = array();
         }
         $sorting['updatedAt'] = 'desc';
     }
     $this->applySorting($queryBuilder, $sorting);
     return $this->getPaginator($queryBuilder);
 }
コード例 #5
0
 /**
  * {@inheritdoc}
  */
 protected function getCollectionQueryBuilder()
 {
     $queryBuilder = parent::getCollectionQueryBuilder();
     $queryBuilder->addSelect('translation')->leftJoin($this->getAlias() . '.translations', 'translation');
     return $queryBuilder;
 }
コード例 #6
0
 protected function getCollectionQueryBuilder()
 {
     return parent::getCollectionQueryBuilder()->leftJoin($this->getPropertyName('rules'), 'r')->addSelect('r')->leftJoin($this->getPropertyName('actions'), 'a')->addSelect('a');
 }
コード例 #7
0
 protected function getCollectionQueryBuilder()
 {
     return parent::getCollectionQueryBuilder()->leftJoin($this->getAlias() . '.rules', 'r')->addSelect('r')->leftJoin($this->getAlias() . '.actions', 'a')->addSelect('a');
 }
コード例 #8
0
ファイル: VariantRepository.php プロジェクト: aleherse/Sylius
 protected function getCollectionQueryBuilder()
 {
     return parent::getCollectionQueryBuilder()->join($this->getAlias() . '.object', 'product')->addSelect('product')->leftJoin($this->getAlias() . '.options', 'option')->addSelect('option');
 }