コード例 #1
0
 /**
  * @param string $alias
  * @return Expr\Andx|Expr\Comparison|Expr\Composite|null
  */
 public function getWhere($alias)
 {
     $expr = new Expr\Andx();
     foreach ($this->criteria as $key => $value) {
         $expr->add(new Expr\Comparison(sprintf("%s.%s", $alias, $key), Expr\Comparison::EQ, $value));
     }
     return $expr->count() != 0 ? $expr : null;
 }
コード例 #2
0
ファイル: AndFit.php プロジェクト: yosmanyga/dql-fit
 /**
  * @param string $alias
  * @return Expr\Andx|Expr\Comparison|Expr\Composite|null
  */
 public function getWhere($alias)
 {
     $expr = new Expr\Andx();
     foreach ($this->fits as $fit) {
         if ($fit instanceof WhereFitInterface) {
             $expr->add($fit->getWhere($alias));
         }
     }
     return $expr->count() != 0 ? $expr : null;
 }
コード例 #3
0
 protected function applySpecifications(QueryBuilder $queryBuilder, $alias)
 {
     $andX = new Query\Expr\Andx();
     foreach ($this->specifications as $specification) {
         array_map([$andX, 'add'], array_filter((array) $specification->match($queryBuilder, $alias)));
     }
     if ($andX->count() > 0) {
         $queryBuilder->andWhere($andX);
     }
 }
コード例 #4
0
 public function createGridQueryBuilder($entityClass, $params)
 {
     $qb = $this->em->createQueryBuilder();
     $qb->from($entityClass, 'o');
     $this->_addJoinEntity($qb, $params);
     $searches = array();
     if (isset($params['search']['value'])) {
         $searches = explode(" ", trim($params['search']['value']));
         for ($index = 0; $index < count($searches); $index++) {
             $qb->setParameter('main_search_' . $index, '%' . $searches[$index] . '%');
         }
     }
     $fieldsSearch = new Expr\Andx();
     $globalSearch = new Expr\Orx();
     if (isset($params['columns'])) {
         foreach ($params['columns'] as $columns) {
             if ($columns['name'] && substr($columns['name'], 0, 1) != '_') {
                 $field = $this->_getFieldName($columns['name']);
                 $fieldAlias = str_replace(".", "_", $columns['name']);
                 for ($index = 0; $index < count($searches); $index++) {
                     $globalSearch->add($qb->expr()->like($field, ':main_search_' . $index));
                 }
                 if ($columns['search']['value']) {
                     $fieldsSearch->add($qb->expr()->like($field, ':' . $fieldAlias . '_search'));
                     $qb->setParameter($fieldAlias . '_search', '%' . $columns['search']['value'] . '%');
                 }
             }
         }
     }
     $searchWhere = new Expr\Andx();
     if (isset($fieldsSearch)) {
         $searchWhere->add($fieldsSearch);
     }
     if (isset($globalSearch)) {
         $searchWhere->add($globalSearch);
     }
     if ($searchWhere->count()) {
         $qb->andWhere($searchWhere);
     }
     return $qb;
 }