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) . ')';
}
/** * 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); }