/** * @param $params * @return ActiveDataProvider */ public function search($params) { $userQuery = $this->finder->getUserQuery(); $modelClass = $userQuery->modelClass; $query = $modelClass::find()->joinWith(['profile']); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { return $dataProvider; } $query->andFilterWhere(['created_at' => $this->created_at])->orFilterWhere(['like', 'username', $this->username])->orFilterWhere(['like', 'profile.name', isset($params['UserSearch']) ? $params['UserSearch']['profile.name'] : ''])->orFilterWhere(['like', 'email', $this->email])->orFilterWhere(['registration_ip' => $this->registration_ip]); return $dataProvider; }