query = $query; parent::__construct($config); } /** * @return array */ public function rules() { return [ 'safeFields' => [['username', 'email', 'registration_ip', 'created_at'], 'safe'], 'createdDefault' => ['created_at', 'default', 'value' => null], ]; } /** * @return array */ public function attributeLabels() { return [ 'username' => Yii::t('user', 'Username'), 'email' => Yii::t('user', 'Email'), 'created_at' => Yii::t('user', 'Registration time'), 'registration_ip' => Yii::t('user', 'Registration ip'), ]; } /** * @param $params * * @return ActiveDataProvider */ public function search($params) { $query = $this->query; $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } if ($this->created_at !== null) { $date = strtotime($this->created_at); $query->andFilterWhere(['between', 'created_at', $date, $date + 3600 * 24]); } $query ->andFilterWhere(['like', 'username', $this->username]) ->andFilterWhere(['like', 'email', $this->email]) ->andFilterWhere(['registration_ip' => $this->registration_ip]); return $dataProvider; } }