Sonata\Component\Basket\BasketManager::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('b')->select('b');
        $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('id' => 'ASC');
        }
        foreach ($sort as $field => $direction) {
            $query->orderBy(sprintf('b.%s', $field), strtoupper($direction));
        }
        $pager = new Pager();
        $pager->setMaxPerPage($limit);
        $pager->setQuery(new ProxyQuery($query));
        $pager->setPage($page);
        $pager->init();
        return $pager;
    }