/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Event::find(); $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; } $query->andFilterWhere(['id' => $this->id, 'user_id' => $this->user_id, 'start_date' => $this->start_date, 'end_date' => $this->end_date, 'visibility' => $this->visibility, 'region_id' => $this->region_id, 'genre_id' => $this->genre_id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]); $query->andFilterWhere(['like', 'title', $this->title])->andFilterWhere(['like', 'location', $this->location])->andFilterWhere(['like', 'url', $this->url])->andFilterWhere(['like', 'notes', $this->notes])->andFilterWhere(['like', 'image', $this->image]); return $dataProvider; }
public function actionGetNumberOfEvents() { $now = new \DateTime(Yii::$app->request->post('now')); $nextMonth = new \DateTime(Yii::$app->request->post('nextMonth')); $array = []; for ($date = $now; $date < $nextMonth; $date->modify('+1 day')) { $hasEvent = true; $event = Event::find()->joinWith('eventPosts')->where(['like', 'DATE(start_date)', $date->format('Y-m-d')])->andWhere('status = :status', [':status' => EventPost::STATUS_POST])->one(); if ($event) { $hasEvent = true; } else { $hasEvent = false; } $array[] = ['date' => $date->format('Y-m-d H:i:s'), 'hasEvent' => $hasEvent]; } return json_encode(['success' => true, 'data' => $array]); }
/** * Lists all Event models. * @return mixed */ public function actionIndex() { $dataProvider = new ActiveDataProvider(['query' => Event::find()]); $dataProvider->setSort(['defaultOrder' => ['created_at' => SORT_DESC, 'id' => SORT_ASC]]); return $this->render('index', ['dataProvider' => $dataProvider]); }