Skip to content

Instantly share code, notes, and snippets.

@peterjmit
Created March 6, 2012 12:37
Show Gist options
  • Save peterjmit/1986048 to your computer and use it in GitHub Desktop.
Save peterjmit/1986048 to your computer and use it in GitHub Desktop.

Revisions

  1. peterjmit revised this gist Mar 6, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion doctrine_native_pagination.php
    Original file line number Diff line number Diff line change
    @@ -13,7 +13,7 @@ function paginate(Doctrine\ORM\Query $query, $page, $limit, $fetchJoinCollection
    $query->setFirstResult($offset);
    $query->setMaxResults($limit);

    $paginator = new Doctrine\ORM\Tools\Pagination\Paginator($query);
    $paginator = new Doctrine\ORM\Tools\Pagination\Paginator($query, $fetchJoinCollection);

    // Num results
    $count = $paginator->count();
  2. peterjmit revised this gist Mar 6, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion doctrine_native_pagination.php
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    <?php

    function paginate(Doctrine\ORM\Query $query, $page, $limit)
    function paginate(Doctrine\ORM\Query $query, $page, $limit, $fetchJoinCollection = true)
    {
    // If we don't have a page just return the result
    if( ! $page && ! $limit)
  3. peterjmit created this gist Mar 6, 2012.
    31 changes: 31 additions & 0 deletions doctrine_native_pagination.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,31 @@
    <?php

    function paginate(Doctrine\ORM\Query $query, $page, $limit)
    {
    // If we don't have a page just return the result
    if( ! $page && ! $limit)
    {
    return $query->getResult();
    }

    $offset = ($page * $limit) - $limit;

    $query->setFirstResult($offset);
    $query->setMaxResults($limit);

    $paginator = new Doctrine\ORM\Tools\Pagination\Paginator($query);

    // Num results
    $count = $paginator->count();

    $pagination_info = array(
    'total' => (int) $count,
    'current_page' => (int) $page,
    'total_pages' => (int) ceil($count / $limit)
    );

    return array(
    'result' => $paginator, // could just return $paginator->getIterator()
    'meta' => $pagination_info
    );
    }