DateRangeBehavior::className(), 'attribute' => 'createTimeRange', 'dateStartAttribute' => 'createTimeStart', 'dateEndAttribute' => 'createTimeEnd', ] ]; } /** * @inheritdoc */ public function rules() { return [ [['id', 'user_id', 'auction_id', 'lot_id'], 'integer'], [['path', 'name'], 'safe'], [['createTimeRange'], 'match', 'pattern' => '/^.+\s\-\s.+$/'], ]; } /** * @inheritdoc */ public function scenarios() { // bypass scenarios() implementation in the parent class return Model::scenarios(); } /** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Files::find(); // add conditions that should always apply here $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); $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; } // grid filtering conditions $query->andFilterWhere([ 'id' => $this->id, 'user_id' => $this->user_id, 'auction_id' => $this->auction_id, 'lot_id' => $this->lot_id, ]); $query->andFilterWhere(['like', 'path', $this->path]) ->andFilterWhere(['like', 'name', $this->name]); $query->andFilterWhere(['>=', 'createdAt', $this->createTimeStart]) ->andFilterWhere(['<', 'createdAt', $this->createTimeEnd]); return $dataProvider; } }