Beispiel #1
0
 /**
  * @return array
  */
 public function run()
 {
     if ($this->checkAccess) {
         call_user_func($this->checkAccess, $this->id);
     }
     $result = [];
     // Получаем данные о всех фото из БД
     $mediaInfo = MediaInfo::find()->where(['in', 'owner_id', array_keys($this->controller->users)])->limit($this->controller->limit)->offset($this->controller->offset)->asArray()->all();
     // Пробегаемся по массиву с медиафайлами и формируем результирующий массив
     foreach ($mediaInfo as $key => $item) {
         $result[$key] = ['photo_url' => $item['photo_url'], 'photo_caption' => $item['photo_caption'], 'count_likes' => $item['count_likes'], 'count_comments' => $item['count_comments']];
         // Если был передан параметр на группировку данных по дням - получаем их
         if (Yii::$app->request->get('groupByDay', 0) == 1) {
             // Количество лайков по дням
             $result[$key]['count_likes'] = LikesPerDay::find()->select('date , count_likes')->where(['media_id' => $item['media_id']])->all();
             // Количество комментариев по дням
             $result[$key]['count_comments'] = CommentsPerDay::find()->select('date , count_comments')->where(['media_id' => $item['media_id']])->all();
         }
     }
     return $result;
 }
Beispiel #2
0
 /**
  * @return array
  */
 public function run($id)
 {
     if ($this->checkAccess) {
         call_user_func($this->checkAccess, $this->id);
     }
     // Получаем данные о всех фото из БД
     $mediaInfo = MediaInfo::find()->where(['in', 'owner_id', array_keys($this->controller->users)])->andWhere(['media_id' => $id])->asArray()->one();
     // Если элемент не найден, возвращаем пустой результат
     if (empty($mediaInfo)) {
         return [];
     }
     // Формируем результирующий массив
     $result = ['photo_url' => $mediaInfo['photo_url'], 'photo_caption' => $mediaInfo['photo_caption'], 'count_likes' => $mediaInfo['count_likes'], 'count_comments' => $mediaInfo['count_comments']];
     // Если был передан параметр на группировку данных по дням - получаем их
     if (Yii::$app->request->get('groupByDay', 0) == 1) {
         // Количество лайков по дням
         $result['count_likes'] = LikesPerDay::find()->select('date , count_likes')->where(['media_id' => $mediaInfo['media_id']])->all();
         // Количество комментариев по дням
         $result['count_comments'] = CommentsPerDay::find()->select('date , count_comments')->where(['media_id' => $mediaInfo['media_id']])->all();
     }
     return $result;
 }