/** * @return array|string */ public function actionAvailableTours() { $app = \Yii::$app; $request = $app->request; $search = new TourRecord(); $search->setScenario('search'); $hotelFilterForm = new HotelFilterForm(); if (Yii::$app->request->isAjax && $hotelFilterForm->load($request->get())) { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($hotelFilterForm); } $hotelFilterForm->load($request->get()); $hotelFilterForm->validate(); $params = ArrayHelper::merge($request->getQueryParams(), [$search->formName()]); $options = ['country_id' => $hotelFilterForm->country_id, 'stars' => $hotelFilterForm->stars, 'type' => $hotelFilterForm->type]; $dataProvider = $search->getFilterDataProvider($options, $params); $viewData = ['dataProvider' => $dataProvider, 'totalCount' => $dataProvider->totalCount, 'hotelFilterForm' => $hotelFilterForm, 'search' => $search]; return $this->render('available-tours', $viewData); }