[Options::TYPE_SYSTEM, Options::TYPE_CUSTOM, Options::TYPE_BANNER, Options::TYPE_AD]], [['name', 'value', 'tips'], 'safe'], [['input_type'], 'in', 'range' => Constants::getInputTypeItems()], [['created_at', 'updated_at'], 'safe'], ]; } public function search(array $params = [], array $options = []) { switch ($this->type){ case Options::TYPE_AD: $query = AdForm::find()->andWhere(['type' => $this->type]); break; default: $query = Options::find()->andFilterWhere(['type' => $this->type]); } $query = $query->orderBy(['id'=>SORT_DESC]); $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); if (! $this->load($params)) { return $dataProvider; } $query->andFilterWhere(['id' => $this->id]) ->andFilterWhere(['like', 'name', $this->name]) ->andFilterWhere(['value' => $this->value]) ->andFilterWhere(['input_type' => $this->input_type]) ->andFilterWhere(['like', 'tips', $this->tips]) ->andFilterWhere(['autoload' => $this->autoload]) ->andFilterWhere(['sort' => $this->sort]); return $dataProvider; } }