public function getUsersList(UsersCriteria $criteria) { $queryBuilder = $this->connection->createQueryBuilder(); $queryBuilder->from('users', 'u')->select('u.*'); $name = $criteria->getFirstName(); if (isset($name)) { $queryBuilder->where('lower(u.first_name) LIKE :first_name')->setParameter('first_name', '%' . strtolower($name) . '%'); } $gender = $criteria->getSex(); if (isset($gender)) { $queryBuilder->where('u.sex = :sex')->setParameter('sex', $gender); } $queryBuilder->setFirstResult($criteria->getPage())->setMaxResults($criteria->getPerPage()); $results = $queryBuilder->execute()->fetchAll(); return $results; }
public function indexAction(Request $request) { $service = $this->get('users.users_list_service'); $criteria = new UsersCriteria(); $criteria->setFirstName($request->get('name')); $criteria->setPerPage($request->get('perPage')); $criteria->setPage($request->get('page')); $criteria->setSex($request->get('gender')); try { $users = $service->getUsersList($criteria); } catch (\Exception $ex) { throw $ex; } return $this->render('UsersBundle:Users:index.html.twig', array('users' => $users, 'currentPage' => $criteria->getPage())); }