/** * @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; }
/** * @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; }