コード例 #1
0
ファイル: MessageRepository.php プロジェクト: rud-felix/tweet
 /**
  * @param User $user
  * @return array
  */
 public function findFollowersMessages(User $user, $page, $count)
 {
     $followers[] = $user->getId();
     /** @var User $follower */
     foreach ($user->getFollowers() as $follower) {
         $followers[] = $follower->getId();
     }
     $followers = array_unique($followers);
     $qb = $this->createQueryBuilder('m');
     $query = $qb->select('u, m')->where('m.user IN (:ids)')->andWhere('m.createdAt >= :from')->join('m.user', 'u')->orderBy('m.createdAt', 'DESC')->setParameter('ids', $followers)->setParameter('from', new \DateTime('-24 hours'))->getQuery();
     $massagePaginate = $this->getPaginator()->paginate($query, $page, $count);
     return $massagePaginate;
 }
コード例 #2
0
ファイル: User.php プロジェクト: rud-felix/tweet
 /**
  * @param \Brd4\UserBundle\Entity\User $user
  * @param $page
  * @return array
  */
 public function getUsersWithMarkFollower(\Brd4\UserBundle\Entity\User $user, $page)
 {
     $pagination = $this->userRepository->findAllUsers($user->getId(), $page, $count = $this->count);
     $followers = $user->getFollowers();
     $followersIds = [];
     foreach ($followers as $follower) {
         $followersIds[] = $follower->getId();
     }
     foreach ($pagination as $item) {
         if (in_array($item->getId(), $followersIds)) {
             $item->isFollow = true;
         } else {
             $item->isFollow = false;
         }
     }
     return $pagination;
 }