Sonata\CustomerBundle\Entity\CustomerManager::getPager PHP Method

getPager() public method

public getPager ( array $criteria, $page, $limit = 10, array $sort = [] )
$criteria array
$sort array
    public function getPager(array $criteria, $page, $limit = 10, array $sort = array())
    {
        $query = $this->getRepository()->createQueryBuilder('c')->select('c');
        $fields = $this->getEntityManager()->getClassMetadata($this->class)->getFieldNames();
        foreach ($sort as $field => $direction) {
            if (!in_array($field, $fields)) {
                throw new \RuntimeException(sprintf("Invalid sort field '%s' in '%s' class", $field, $this->class));
            }
        }
        if (count($sort) == 0) {
            $sort = array('lastname' => 'ASC');
        }
        foreach ($sort as $field => $direction) {
            $query->orderBy(sprintf('c.%s', $field), strtoupper($direction));
        }
        $parameters = array();
        if (isset($criteria['is_fake'])) {
            $query->andWhere('c.isFake = :isFake');
            $parameters['isFake'] = $criteria['is_fake'];
        }
        $query->setParameters($parameters);
        $pager = new Pager();
        $pager->setMaxPerPage($limit);
        $pager->setQuery(new ProxyQuery($query));
        $pager->setPage($page);
        $pager->init();
        return $pager;
    }
CustomerManager