silverstripe-framework/search/filters/StartsWithMultiFilter.php
Ingo Schommer cc6ef50377 BUGFIX Fixed unclear SQL escaping responsibilities in SearchFilter subclasses - it now expects unescaped data, and escapes automatically when adding to the query)
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@63649 467b73ca-7a2a-4603-9d3b-597d59a354a9
2008-10-05 19:20:35 +00:00

33 lines
717 B
PHP

<?php
/**
* @package sapphire
* @subpackage search
*/
/**
* Checks if a value starts with one of the items of in a given set.
* SQL syntax used: Column IN ('val1','val2')
*
* @todo Add negation (NOT IN)6
*/
class StartsWithMultiFilter extends SearchFilter {
public function apply(SQLQuery $query) {
$query = $this->applyRelation($query);
$values = explode(',', $this->getValue());
foreach($values as $value) {
$matches[] = sprintf("%s LIKE '%s%%'",
$this->getDbName(),
Convert::raw2sql(str_replace("'", '', $value))
);
}
return $query->where(implode(" OR ", $matches));
}
public function isEmpty() {
return $this->getValue() == null || $this->getValue() == '';
}
}
?>