* @since 2.0 */ class Base extends Model { /** * Adds filtering condition for a given attribute * * @param Filter $filter filter instance * @param string $attribute attribute to filter * @param bool $partial if partial match should be used */ public function addCondition(Filter $filter, $attribute, $partial = false) { $value = $this->$attribute; if (mb_strpos($value, '>') !== false) { $value = intval(str_replace('>', '', $value)); $filter->addMatcher($attribute, new matchers\GreaterThan(['value' => $value])); } elseif (mb_strpos($value, '<') !== false) { $value = intval(str_replace('<', '', $value)); $filter->addMatcher($attribute, new matchers\LowerThan(['value' => $value])); } else { $filter->addMatcher($attribute, new matchers\SameAs(['value' => $value, 'partial' => $partial])); } } }