Ce qui est un minimum, exemple complet de la pagination dans Kohana 3.2?
-
12-11-2019 - |
Question
J'ai trouvé beaucoup d'informations sur la pagination dans Kohana 3.2, mais la plupart sont dispersés à travers le forum des commentaires et des messages de blog avec pas une seule source complet à consulter.
(remarque:J'avais l'intention de l'auto de répondre à cette question)
La solution
C'est ce qui a fonctionné pour moi:
- Télécharger le module à partir de la pagination https://github.com/kloopko/kohana-pagination (la pagination a été retiré de Kohana 3.2, ce qui est un module adapté).
- Installez le module dans modules/pagination.
Ajouter le module dans bootstrap.php:
Kohana::modules(array( // ... other modules ... 'pagination' => MODPATH.'pagination' ));
Copier le fichier de configuration de modules/pagination/config/pagination.php pour application/config/pagination.php.
Ajouter les actions suivantes à votre contrôleur:
public function action_index() { // Go to first page by default $this->request->redirect('yourcontroller/page/?page=1'); } public function action_page() { $orm = orm::factory('your_orm'); $pagination = Pagination::factory(array( 'total_items' => $orm->count_all(), 'items_per_page' => 20, ) ); // Pass controller and action names explicitly to $pagination object $pagination->route_params(array('controller' => $this->request->controller(), 'action' => $this->request->action())); // Get data $data = $orm->offset($pagination->offset)->limit($pagination->items_per_page)->find_all()->as_array(); // Pass data and validation object to view echo View::factory('yourview/page', array('data' => $data, 'pagination' => $pagination)); }
Créer yourview/page comme suit:
<?php foreach($data as $item) { // ...put code to list items here } // Show links echo $pagination;
Modifier application/config/pagination.php en fonction de vos besoins.J'ai dû changer la
'view'
paramètre'pagination/floating'
qui affiche les points de suspension (...) lorsque la liste des pages est trop grande, à la différence de la valeur par défaut'pagination/basic'
qui répertorie toutes les pages indépendamment de la longueur.
Autres conseils
La pagination ne fonctionnait pas à l'origine / prise en charge à Kohana 3.2.Heureusement, quelqu'un a mis à jour le module et vous pouvez obtenir le code à https://github.com/kloopko/kohana-pagination