/** * @param \Symfony\Component\HttpFoundation\Request $request * * @return \Symfony\Component\HttpFoundation\Response */ public function searchVenueAction(Request $request) { $venueName = $request->get('name'); $venueLocation = $request->get('location'); $venueTypeBar = $request->get('bar'); $venueTypeClub = $request->get('club'); $venueTypeOther = $request->get('other'); $page = $request->get('page'); if ($request->get('type') == 'filter') { $page = 0; } $venueTypes = array(); $criteria = new \Doctrine\Common\Collections\Criteria(); if ($venueLocation) { $criteria->where($criteria->expr()->contains('city', $venueLocation)); $criteria->orWhere($criteria->expr()->contains('country', $venueLocation)); } if ($venueName) { $criteria->andWhere($criteria->expr()->contains('name', $venueName)); } if ($venueTypeBar == 'true') { $venueTypes[] = 'bar'; } if ($venueTypeClub == 'true') { $venueTypes[] = 'club'; } if ($venueTypeOther == 'true') { $venueTypes[] = 'other'; } if (empty($venueTypes)) { $venueTypes = array('bar', 'club', 'other'); } $criteria->andWhere($criteria->expr()->in('category', $venueTypes)); #$criteria->setFirstResult(12 * $page); $criteria->setMaxResults(12 * ($page + 1)); $venues = $this->getEntityManager()->getRepository('ApplicationJraisanenVnuezBundle:Venue')->matching($criteria); $allItems = false; if ($venues->count() < 12 * ($page + 1)) { $allItems = true; } return $this->render('JraisanenSearchBundle:Search:search_venue.html.twig', array('venues' => $venues, 'all_items' => $allItems)); }