Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Dans un post précédent, j'ai découvert que l'on peut transmettre une instance de Zend_Db_Select comme argument à Zend_Paginator pour des gains de performance.
Tout fonctionne, cependant, j'aimerais récupérer le nombre d'enregistrement directement dans le controlleur et non dans le partial de vue comme expliquer dans la doc.
Dans mon controlleur
$paginator = Zend_Paginator::factory($select_query); $paginator->setCurrentPageNumber($pageNumber = (int) $this->_request->getParam('pg',1)); $paginator->setItemCountPerPage($itemsPerPage = 10); $nbresults = count($paginator); // me renvoie le nombre de page et pas le nombre de résultat (row/ligne).
Quelqu'un a-t-il une solution ?
Merci de votre aide.
Dernière modification par Roulio (30-10-2008 08:28:14)
Hors ligne
le nombre de page : $paginator->getItemCount($paginator)
nombre de résultat c'est $this->totalItemCount; mais dans la vue ...
edit :
$_rowCount contient le nombre de ligne mais protected( \library\Zend\Paginator\Adapter\DbSelect.php )
Dernière modification par etaty (29-10-2008 17:35:22)
Hors ligne
Hello,
Et un count(), Zend_Paginator_Adapter_DbSelect implémente Zend_Paginator_Adapter_Interface qui elle-même implémente Countable.
$nb = count($paginator);
A+
Hors ligne
Bonsoir,
J'ai testé sur mon site un count($this -> Paginateur) dans le script de vue et j'obtiens le nombre de résultats dans la page en cours...
Pas le nombre total d'enregistrements
Bonne soirée.
Kaimite
Hors ligne
Oui parce que tu comptes sur l'instance du paginateur.
Le paginateur n'est qu'un objet qui pilote un adaptateur par fenêtre (avec un LimitIterator).
C'est l'adaptateur qui sait le nombre de résultats total.
Je parierai dans ton cas sur
count($this->Paginateur->getAdapter());
Hors ligne
Hello,
J'ai vraiment répondu comme un boulet à ce post.
A+
Hors ligne
Môô non fô pas dire ça
Hors ligne
Hello,
On n'est pas les seuls à se poser la question.
A+
Dernière modification par mikaelkael (29-10-2008 22:03:59)
Hors ligne
Bonsoir et merci pour les réponses.
Dans mon controller je met :
$this -> view -> nbResultatsTotal = $Paginateur -> getAdapter() -> count();
et je récupère $this -> nbResultatsTotal dans ma vue.
C'est nickel
Merci et bonne nuit.
Kaimite
Hors ligne
J'ai patché ca, c'est à la r12200 pour ceux qui bossent sur le trunk, sinon ca sera intégré en 1.7 (qui sort le 16/11 d'ailleurs, au passage ...)
Hors ligne
Pages: 1