public function getMessagesAfter(Board $board, Message $message = null, $direction = 0) { $qb = $this->createQueryBuilder('m')->select()->where('m.board = :board'); $crt = array('board' => $board); //direction false is down / true is up if (!(bool) $direction) { if ($message !== null) { $qb->andWhere('m.id < :mid'); $crt['mid'] = $message->getId(); } } else { if ($message !== null) { $qb->andWhere('m.id > :mid'); $crt['mid'] = $message->getId(); } } $qb->setParameters($crt); $qb->addOrderBy('m.id', 'DESC'); $query = $qb->getQuery(); $query->setMaxResults(Message::MAX_RESULTS); return $query->getResult(); }