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; }