Esempio n. 1
0
 public function search(PushSearch $search)
 {
     if (!$search->searchIsValid()) {
         throw new \InvalidArgumentException("Unable to run an empty search request in " . __CLASS__);
     }
     $em = $this->getEntityManager();
     $qb = $em->createQueryBuilder();
     $qb->select('p')->from('Mrk\\GitPushWatcherBundle\\Entity\\Push', 'p');
     if ($search->hasType()) {
         $qb->andWhere('p.' . $search->getType() . ' = :value ');
         $qb->setParameter('value', $search->getValue());
     }
     if ($search->hasAuthor()) {
         $qb->andWhere('p.text LIKE :author ');
         $qb->setParameter('author', $search->getLikeAuthor());
     }
     if ($search->hasPattern()) {
         $qb->andWhere('p.text LIKE :pattern ');
         $qb->setParameter('pattern', $search->getLikePattern());
     }
     $qb->orderBy('p.' . $search->getOrderField(), $search->getOrderValue());
     return $qb->getQuery()->getResult();
 }