/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Tags::getDb()->cache(function ($db) { $query = Tags::find(); $query->joinWith(['tagType', 'parentTag']); return $query; }); $_columns = [Tags::tableName() . '.id', Tags::tableName() . '.tag_name_' . Yii::$app->language, Tags::tableName() . '.tag_type']; $dataProvider = new ActiveDataProvider(['query' => $query]); $query->select($_columns); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'create_date' => $this->create_date]); $query->andFilterWhere(['like', 'tag_name_ar', $this->tag_name_ar])->andFilterWhere(['like', 'tag_name_en', $this->tag_name_en])->andFilterWhere(['like', 'status', $this->status])->andFilterWhere(['like', 'type_name', $this->tag_type]); //->andFilterWhere(['like', 'CONCAT(full_name,username)', $this->created_by]); return $dataProvider; }