/** * @inheritdoc */ protected function prepareModels() { $pattern = $this->getPattern(); if ($pattern == false) { return parent::prepareModels(); } $origAll = $this->allModels; $attribute = $this->alphaAttribute; $this->allModels = array_filter($this->allModels, function ($v) use($attribute, $pattern) { $attrVal = $v->{$attribute}; if (is_array($pattern)) { $pattern = '/^' . current($pattern) . '/'; return preg_match($pattern, $attrVal) === 1; } else { return stripos($attrVal, $pattern) === 0; } }); $r = parent::prepareModels(); $this->allModels = $origAll; return $r; }