protected function setComments($sourceId) { $qb = $this->em->getRepository('MDSSiteBundle:Comment')->createQueryBuilder('comment'); if ($sourceId) { //TODO Не знаю зачем мне тут нужен был сурс, удалить потом ? //$source = $this->em->getRepository('MDSSiteBundle:Source')->findBy(array('id' => $sourceId)); $commQuery = $qb->innerJoin('comment.source', 'source')->where('source.id =:sourceid')->setParameter('sourceid', $sourceId)->orderBy('comment.id', 'DESC')->getQuery(); } else { //Если не сурсId, то постим news $commQuery = $qb->where('comment.name =:comname')->setParameter('comname', 'news')->orderBy('comment.id', 'DESC')->getQuery(); } /** @var Paginator $paginator */ $paginator = $this->getService('knp_paginator'); $page = $this->request->request->get('page'); $page = $page ? $page : '1'; $comments = $paginator->paginate($commQuery, $page, 10); /* нет коментов - пишем заглушку */ if (!$comments->getTotalItemCount()) { $comments = new ArrayCollection(); $comment = new Comment(); $comment->setName('admin'); $comment->setText('Добрых слов пока не нашлось'); $comments->add($comment); /* если вызываемая страница больше чем их количество */ } else { $this->pages = $comments->getPageCount(); if ($this->pages < $page) { return false; } } $this->comments = $comments; }