Advertisement
Guest User

Untitled

a guest
Jul 25th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.05 KB | None | 0 0
  1. <?php
  2. /**
  3.  *
  4.  */
  5.  
  6. namespace AppBundle\Pagination;
  7.  
  8.  
  9. use Doctrine\ORM\QueryBuilder;
  10. use Pagerfanta\Adapter\DoctrineORMAdapter;
  11. use Pagerfanta\Pagerfanta;
  12. use Symfony\Component\HttpFoundation\Request;
  13.  
  14. class PaginatedCollection
  15. {
  16.  
  17.     /**
  18.      * @var DoctrineORMAdapter
  19.      */
  20.     private $adapter;
  21.  
  22.     /**
  23.      * @var mixed
  24.      */
  25.     private $page;
  26.  
  27.     /**
  28.      * @var Pagerfanta
  29.      */
  30.     private $pagerFanta;
  31.  
  32.     /**
  33.      * PaginatedCollection constructor.
  34.      * @param QueryBuilder $queryBuilder
  35.      * @param Request $request
  36.      * @param int $maxPerPage
  37.      */
  38.     public function __construct(QueryBuilder $queryBuilder, Request $request, int $maxPerPage)
  39.     {
  40.         $this->adapter = new DoctrineORMAdapter($queryBuilder);
  41.         $this->page = $request->query->get('page', 1);
  42.         $this->pagerFanta = new Pagerfanta($this->adapter);
  43.         $this->pagerFanta->setMaxPerPage($maxPerPage);
  44.         $this->pagerFanta->setCurrentPage($this->page);
  45.  
  46.         return $this->pagerFanta->getIterator();
  47.     }
  48.  
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement