hasSplitWordsSearch() public method

public hasSplitWordsSearch ( ) : boolean
return boolean
 /**
  * Filter by keyword
  * @param  Filter\FilterText $filter
  * @return void
  */
 public function applyFilterText(Filter\FilterText $filter)
 {
     $exprs = [];
     foreach ($filter->getCondition() as $column => $value) {
         if ($filter->isExactSearch()) {
             $exprs[] = Criteria::expr()->eq($column, $value);
             continue;
         }
         if ($filter->hasSplitWordsSearch() === FALSE) {
             $words = [$value];
         } else {
             $words = explode(' ', $value);
         }
         foreach ($words as $word) {
             $exprs[] = Criteria::expr()->contains($column, $word);
         }
     }
     $expr = call_user_func_array([Criteria::expr(), 'orX'], $exprs);
     $this->criteria->andWhere($expr);
 }
 /**
  * Filter by keyword
  * @param  Filter\FilterText $filter
  * @return void
  */
 public function applyFilterText(Filter\FilterText $filter)
 {
     $or = [];
     $args = [];
     $big_or = '(';
     $big_or_args = [];
     $condition = $filter->getCondition();
     foreach ($condition as $column => $value) {
         $like = '(';
         $args = [];
         if ($filter->isExactSearch()) {
             $like .= "{$column} = ? OR ";
             $args[] = "{$value}";
         } else {
             if ($filter->hasSplitWordsSearch() === FALSE) {
                 $words = [$value];
             } else {
                 $words = explode(' ', $value);
             }
             foreach ($words as $word) {
                 $like .= "{$column} LIKE ? OR ";
                 $args[] = "%{$word}%";
             }
         }
         $like = substr($like, 0, strlen($like) - 4) . ')';
         $or[] = $like;
         $big_or .= "{$like} OR ";
         $big_or_args = array_merge($big_or_args, $args);
     }
     if (sizeof($or) > 1) {
         $big_or = substr($big_or, 0, strlen($big_or) - 4) . ')';
         $query = array_merge([$big_or], $big_or_args);
         call_user_func_array([$this->data_source, 'where'], $query);
     } else {
         $query = array_merge($or, $args);
         call_user_func_array([$this->data_source, 'where'], $query);
     }
 }
Ejemplo n.º 3
0
 /**
  * Filter by keyword
  * @param  Filter\FilterText $filter
  * @return void
  */
 public function applyFilterText(Filter\FilterText $filter)
 {
     $condition = $filter->getCondition();
     $expr = '(';
     $params = [];
     foreach ($condition as $column => $value) {
         if ($filter->isExactSearch()) {
             $expr .= "%column = %s OR ";
             $params[] = $column;
             $params[] = "{$value}";
             continue;
         }
         if ($filter->hasSplitWordsSearch() === FALSE) {
             $words = [$value];
         } else {
             $words = explode(' ', $value);
         }
         foreach ($words as $word) {
             $expr .= "%column LIKE %s OR ";
             $params[] = $column;
             $params[] = "%{$word}%";
         }
     }
     $expr = preg_replace('/ OR $/', ')', $expr);
     array_unshift($params, $expr);
     call_user_func_array([$this->data_source->getQueryBuilder(), 'andWhere'], $params);
 }
Ejemplo n.º 4
0
 /**
  * Filter by keyword
  * @param Filter\FilterText  $filter
  */
 public function applyFilterText(Filter\FilterText $filter)
 {
     $condition = $filter->getCondition();
     $exprs = [];
     foreach ($condition as $column => $value) {
         if ($filter->hasSplitWordsSearch() === FALSE) {
             $words = [$value];
         } else {
             $words = explode(' ', $value);
         }
         $c = $this->checkAliases($column);
         foreach ($words as $word) {
             $exprs[] = $this->data_source->expr()->like($c, $this->data_source->expr()->literal("%{$word}%"));
         }
     }
     $or = call_user_func_array([$this->data_source->expr(), 'orX'], $exprs);
     $this->data_source->andWhere($or);
 }