Prado\Data\Common\TDbCommandBuilder::getSearchExpression PHP Method

getSearchExpression() public method

Computes the SQL condition for search a set of column using regular expression (or LIKE, depending on database implementation) to match a string of keywords (default matches all keywords).
public getSearchExpression ( $fields, $keywords ) : string
return string SQL search condition matching on a set of columns.
    public function getSearchExpression($fields, $keywords)
    {
        if (strlen(trim($keywords)) == 0) {
            return '';
        }
        $words = preg_split('/\\s/u', $keywords);
        $conditions = array();
        foreach ($fields as $field) {
            $column = $this->getTableInfo()->getColumn($field)->getColumnName();
            $conditions[] = $this->getSearchCondition($column, $words);
        }
        return '(' . implode(' OR ', $conditions) . ')';
    }

Usage Example

Exemplo n.º 1
0
 /**
  * Overrides parent implementation. Only column of type text or character (and its variants)
  * accepts the LIKE criteria.
  * @param array list of column id for potential search condition.
  * @param string string of keywords
  * @return string SQL search condition matching on a set of columns.
  */
 public function getSearchExpression($fields, $keywords)
 {
     $columns = array();
     foreach ($fields as $field) {
         if ($this->isSearchableColumn($this->getTableInfo()->getColumn($field))) {
             $columns[] = $field;
         }
     }
     return parent::getSearchExpression($columns, $keywords);
 }