Example #1
0
 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;
 }