Hi Serkan,
in this case you may want the getAllUsers method return the paginator or
create a getAllUsersPaginator method, so you can pass the
Zend_Db_Table_Select object to the paginator.
It doesn't really look like best programming practices, but I think this
should work:
//model:
public function getAllUsersPaginator($pageNumber = 1){
$select = $this->select()
->setIntegrityCheck(false)
->from(array('u'=>'user'),array('*'))
->joinLeft(array('ud'=>'user_detail'), 'u.id_user =
ud.id_user')
->order(array('ud.name','ud.surname'));
$paginator = new Zend_Paginator(new
Zend_Paginator_Adapter_DbTableSelect($select);
$paginator->setCurrentPageNumber($pageNumber);
$paginator->setItemCountPerPage(10);
return $paginator;
}
//controller:
public function IndexAction()
{
$paginator =
$this->user->getAllUsersPaginator($this->_getParam('page'));
//Do whatever you want with it here...
}
Regards,
--
Alayn Gortazar
El mar, 06-07-2010 a las 17:12 +0300, Serkan Temizel escribió:
> I found an example it seems to work but I think it does not filter the
> result at sql query level.
>
> controller:
>
> public function indexAction() { // action body
>
> $dbResult = $this->user->getAllUsers ();
>
> $pageNumber = 10;
> $itemNumber = 10;
>
> $paginator = Zend_Paginator::factory ( $dbResult );
> $paginator->setItemCountPerPage ( $pageNumber );
> $paginator->getItemsByPage ( $itemNumber );
> $paginator->setCurrentPageNumber ( $this->_getParam
> ( 'page' ) );
> Zend_Paginator::setDefaultScrollingStyle ( 'Sliding' );
> $view = new Zend_View ( );
> $paginator->setView ( $view );
>
> $this->view->users = $paginator;
> $this->view->paginator = $paginator;
>
> }
> model:
>
> public function getAllUsers(){
>
> $select = $this->select()
> ->setIntegrityCheck(false)
> ->from(array('u'=>'user'),array('*'))
> ->joinLeft(array('ud'=>'user_detail'), 'u.id_user
> = ud.id_user')
> ->order(array('ud.name','ud.surname'));
> $result = $this->fetchAll($select);
>
> return $result;
> }
>
> On Tue, Jul 6, 2010 at 5:06 PM, Serkan Temizel
> <[email protected]> wrote:
> Hi,
>
> Do one of you have an example code for model - controller
> paginator. Exapmles on web are mostly in a controller but I
> want to manage DB works in my model.
>
> thanks
>
El mar, 06-07-2010 a las 17:12 +0300, Serkan Temizel escribió:
> I found an example it seems to work but I think it does not filter the
> result at sql query level.
>
> controller:
>
> public function indexAction() { // action body
>
> $dbResult = $this->user->getAllUsers ();
>
> $pageNumber = 10;
> $itemNumber = 10;
>
> $paginator = Zend_Paginator::factory ( $dbResult );
> $paginator->setItemCountPerPage ( $pageNumber );
> $paginator->getItemsByPage ( $itemNumber );
> $paginator->setCurrentPageNumber ( $this->_getParam
> ( 'page' ) );
> Zend_Paginator::setDefaultScrollingStyle ( 'Sliding' );
> $view = new Zend_View ( );
> $paginator->setView ( $view );
>
> $this->view->users = $paginator;
> $this->view->paginator = $paginator;
>
> }
> model:
>
> public function getAllUsers(){
>
> $select = $this->select()
> ->setIntegrityCheck(false)
> ->from(array('u'=>'user'),array('*'))
> ->joinLeft(array('ud'=>'user_detail'), 'u.id_user
> = ud.id_user')
> ->order(array('ud.name','ud.surname'));
> $result = $this->fetchAll($select);
>
> return $result;
> }
>
> On Tue, Jul 6, 2010 at 5:06 PM, Serkan Temizel
> <[email protected]> wrote:
> Hi,
>
> Do one of you have an example code for model - controller
> paginator. Exapmles on web are mostly in a controller but I
> want to manage DB works in my model.
>
> thanks
>