Esempio n. 1
0
 public function testGetIteratorShouldReturnAnArrayIteratorIfCurrentPageResultsIsAnArray()
 {
     $currentPageResults = array('foo', 'bar');
     $this->setAdapterGetSlice($currentPageResults);
     $expected = new \ArrayIterator($currentPageResults);
     $this->assertEquals($expected, $this->pagerfanta->getIterator());
 }
 /**
  * {@inheritdoc}
  */
 public function current()
 {
     return $this->pager->getIterator();
 }
 /**
  * Public pagination method with pagerfanta instance
  *
  * @\Mmoreram\ControllerExtraBundle\Annotation\Paginator(
  *      class = {
  *          "factory" = "Mmoreram\ControllerExtraBundle\Tests\FakeBundle\Factory\FakeFactory",
  *          "method" = "createNonStatic",
  *          "static" = false
  *      },
  *      page = "~page~",
  *      limit = "~limit~",
  *      orderBy = {
  *          { "x", "~field~", "~dir~", {
  *              "1" = "ASC",
  *              "2" = "DESC",
  *          }}
  *      }
  * )
  *
  * @\Mmoreram\ControllerExtraBundle\Annotation\JsonResponse()
  */
 public function paginatorPagerFantaAction(Pagerfanta $paginator)
 {
     return array('count' => $paginator->getIterator()->count());
 }
 public function getPagedCollection($page = 1, $limit = 10, $query = null, $sorting = null, $order = 'DESC')
 {
     $queryBuilder = $this->repository->createQueryBuilder('e');
     $this->prepareJoinedQuery($queryBuilder);
     if ($query) {
         $this->createFilterQuery($queryBuilder, $query);
     }
     if ($sorting) {
         if (strpos($sorting, '.') === false) {
             $queryBuilder->addOrderBy(sprintf('e.%s', $sorting), $order);
         } else {
             $queryBuilder->addOrderBy($sorting, $order);
         }
     }
     $pagerAdapter = new DoctrineORMAdapter($queryBuilder);
     $pager = new Pagerfanta($pagerAdapter);
     $pager->setCurrentPage($page);
     $pager->setMaxPerPage($limit);
     return ['limit' => (int) $limit, 'page' => (int) $page, 'pages' => $pager->getNbPages(), 'total' => $pager->getNbResults(), 'data' => $pager->getIterator()->getArrayCopy()];
 }