Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- *
- */
- namespace AppBundle\Pagination;
- use Doctrine\ORM\QueryBuilder;
- use Pagerfanta\Adapter\DoctrineORMAdapter;
- use Pagerfanta\Pagerfanta;
- use Symfony\Component\HttpFoundation\Request;
- class PaginatedCollection
- {
- /**
- * @var DoctrineORMAdapter
- */
- private $adapter;
- /**
- * @var mixed
- */
- private $page;
- /**
- * @var Pagerfanta
- */
- private $pagerFanta;
- /**
- * PaginatedCollection constructor.
- * @param QueryBuilder $queryBuilder
- * @param Request $request
- * @param int $maxPerPage
- */
- public function __construct(QueryBuilder $queryBuilder, Request $request, int $maxPerPage)
- {
- $this->adapter = new DoctrineORMAdapter($queryBuilder);
- $this->page = $request->query->get('page', 1);
- $this->pagerFanta = new Pagerfanta($this->adapter);
- $this->pagerFanta->setMaxPerPage($maxPerPage);
- $this->pagerFanta->setCurrentPage($this->page);
- return $this->pagerFanta->getIterator();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement