segunda-feira, 4 de junho de 2012

Paginator com Zend e Doctrine

Zend_Paginator e Doctrine 2


Para quem gosta de trabalhar com o Zend, mas usa o Doctrine 2 como ORM, aqui vai um modo fácil de implementar um Paginador, usando o Zend_Paginator com o Doctrine.


use Doctrine\ORM\Tools\Pagination as Paginator; // goes at top of file
SomeController::someAction() {
 $dql = "SELECT s, c FROM Square\Entity\StampItem s JOIN s.country c ".' ORDER BY '.  $orderBy . ' ' . $dir;

 $query = $this->getEntityManager()->createQuery($dql);
 $d2_paginator = new Paginator($query); \\

 $d2_paginator_iter = $d2_paginator->getIterator(); // returns \ArrayIterator object

 $adapter =  new \Zend_Paginator_Adapter_Iterator($d2_paginator_iter);

 $zend_paginator = new \Zend_Paginator($adapter);          

 $zend_paginator->setItemCountPerPage($perPage)
            ->setCurrentPageNumber($current_page);

 $this->view->paginator = $zend_paginator; //Then in your view, use it just like your currently use     
}

Nenhum comentário:

Postar um comentário