/** * Prepares the data provider that should return the requested collection of the models. * @return ActiveDataProvider */ protected function prepareDataProvider() { if ($this->prepareDataProvider !== null) { return call_user_func($this->prepareDataProvider, $this); } /** * @var \yii\db\BaseActiveRecord $modelClass */ $modelClass = $this->modelClass; $searchClass = new MovieSearch(); $query = $modelClass::find(); $dataProvider->setSort(['defaultOrder' => ['updatedOn' => SORT_DESC]]); $query->andWhere("not ((`state`=" . AppActiveRecord::STATUS_DRAFT . ") AND (`createdBy`!=" . \yii::$app->user->id . "))"); if (!($searchClass->load(Yii::$app->request->queryParams, '') && $searchClass->validate())) { $query->andFilterWhere(['NOT', ['state' => AppActiveRecord::STATUS_DELETE]]); return $dataProvider; } $query->andFilterWhere(['Id' => $searchClass->Id, 'launguageId' => $searchClass->launguageId, 'starRating' => $searchClass->starRating, 'oldStarRating' => $searchClass->oldStarRating, 'avgerageUserRate' => $searchClass->avgerageUserRate, 'reviewCount' => $searchClass->reviewCount, 'releaseDate' => $searchClass->releaseDate, 'createdOn' => $searchClass->createdOn, 'status' => $searchClass->status, 'length' => $searchClass->length, 'toiMovieId' => $searchClass->toiMovieId, 'topLevelCount' => $searchClass->topLevelCount, 'recommendedCount' => $searchClass->recommendedCount, 'agreeCount' => $searchClass->agreeCount, 'disagreeCount' => $searchClass->disagreeCount, 'updatedOn' => $searchClass->updatedOn, 'createdBy' => $searchClass->createdBy, 'updatedBy' => $searchClass->updatedBy, 'entityType' => $searchClass->entityType, 'state' => $searchClass->state]); $query->andFilterWhere(['like', 'name', $searchClass->name])->andFilterWhere(['like', 'cast', $searchClass->cast])->andFilterWhere(['like', 'synopsis', $searchClass->synopsis])->andFilterWhere(['like', 'parentalGuidance', $searchClass->parentalGuidance])->andFilterWhere(['like', 'alias', $searchClass->alias])->andFilterWhere(['like', 'tagline', $searchClass->tagline])->andFilterWhere(['like', 'review', $searchClass->review])->andFilterWhere(['like', 'movieDirector', $searchClass->movieDirector])->andFilterWhere(['like', 'musicDirector', $searchClass->musicDirector])->andFilterWhere(['like', 'oldGuid', $searchClass->oldGuid])->andFilterWhere(['like', 'guid', $searchClass->guid])->andFilterWhere(['like', 'shortCode', $searchClass->shortCode])->andFilterWhere(['like', 'canonicalUrl', $searchClass->canonicalUrl])->andFilterWhere(['like', 'ip', $searchClass->ip]); return $dataProvider; }
/** * Lists all Movie models. * @return mixed */ public function actionIndex() { $searchModel = new MovieSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'state' => new Movie()]); }