Example #1
0
 /**
  * Список городов для выбора
  * @return array|\yii\db\ActiveRecord[]
  */
 public static function getAllCities()
 {
     $query = Review::find()->distinct()->joinWith('cities')->select('city.*')->where(['IS NOT', 'city.id', null])->orderBy('city.name')->asArray();
     if (!Yii::$app->user->isGuest) {
         return $query->all();
     } else {
         return Yii::$app->db->cache(function ($db) use($query) {
             return $query->all();
         }, Yii::$app->params['dbCacheValidTime']);
     }
 }
 /**
  * Список отзывов
  * @param null $id_author
  * @return string
  */
 public function actionIndex($id_author = null)
 {
     $city = null;
     $author = null;
     $dataProvider = null;
     $isValidSession = $this->isValidSession();
     if ($isValidSession) {
         if (isset($id_author)) {
             $query = Review::find()->byAuthor($id_author);
             $author = User::getById($id_author);
         } else {
             $city = Yii::$app->session->get('city');
             $query = Review::find()->byCity(City::getIdCityByName($city));
         }
         $dataProvider = new ActiveDataProvider(['query' => $query->orderBy('created_at DESC'), 'pagination' => ['pageSize' => 10]]);
     }
     return $this->render('index', ['dataProvider' => $dataProvider, 'author' => $author, 'city' => $city, 'isValidSession' => $isValidSession]);
 }