/** * Creates data provider instance with search query applied * @param array $params * @return ActiveDataProvider */ public function search($params) { $query = self::find()->orderBy('created_at DESC'); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { return $dataProvider; } if ($this->tagIds) { $query->joinWith('tags')->andFilterWhere(['in', Tag::tableName() . '.id', $this->tagIds]); } return $dataProvider; }