/** * {@inheritdoc} */ public function findMessages(ConversationInterface $conversation, $offset = 0, $limit = 20, $sortDirection = 'ASC') { $qb = $this->objectManager->createQueryBuilder()->select('m', 's')->from($this->getMessageClass(), 'm')->leftJoin('m.sender', 's')->where('m.conversation = :conversation')->setParameter('conversation', $conversation->getId())->setMaxResults($limit)->setFirstResult($offset)->orderBy('m.date', $sortDirection)->addOrderBy('m.id', $sortDirection); return new ArrayCollection($qb->getQuery()->getResult()); }
public function messagePage(ConversationInterface $conversation, MessageInterface $message) { $position = $conversation->getMessages()->indexOf($message); return ceil(($position + 1) / DefaultController::MESSAGES_PER_PAGE); }