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)

Était-ce utile?

La solution

C'est ce qui a fonctionné pour moi:

  1. 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é).
  2. Installez le module dans modules/pagination.
  3. Ajouter le module dans bootstrap.php:

    Kohana::modules(array(
        // ... other modules ...
        'pagination' => MODPATH.'pagination'
    ));
    
  4. Copier le fichier de configuration de modules/pagination/config/pagination.php pour application/config/pagination.php.

  5. 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));
     }
    
  6. Créer yourview/page comme suit:

    <?php
    foreach($data as $item) {
        // ...put code to list items here 
    }
    
    // Show links
    echo $pagination;
    
  7. 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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top