Qual è un esempio minimo e completo di paginazione in Kohana 3.2?
-
12-11-2019 - |
Domanda
Ho trovato molte informazioni sulla paginazione in Kohana 3.2, ma la maggior parte è sparsa tra commenti del forum e post sul blog senza una singola fonte completa a cui fare riferimento.
(Nota: intendevo rispondere con sé a questa domanda)
Soluzione
Questo è ciò che ha funzionato per me:
- Scarica il modulo di impaginazione da https://github.com/kloopko/kohana-pagination (La paginazione è stata rimossa da Kohana 3.2, quindi questo è un modulo adattato).
- Installa il modulo in moduli/paginazioni.
Aggiungi il modulo in bootstrap.php:
Kohana::modules(array( // ... other modules ... 'pagination' => MODPATH.'pagination' ));
Copia il file di configurazione da moduli/pagination/config/pagination.php su applicazione/config/pagination.php.
Aggiungi le seguenti azioni al controller:
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)); }
Crea la tuaview/pagina come segue:
<?php foreach($data as $item) { // ...put code to list items here } // Show links echo $pagination;
Modifica applicazione/config/pagination.php in base alle tue esigenze. Ho dovuto cambiare il
'view'
parametro a'pagination/floating'
che mostra ellissi (...) quando l'elenco delle pagine è troppo grande, a differenza del valore predefinito'pagination/basic'
che elenca tutte le pagine indipendentemente dalla lunghezza.
Altri suggerimenti
La paginazione non era originariamente funzionante/supportata in Kohana 3.2. Fortunatamente, qualcuno ha aggiornato il modulo e puoi ottenere il codice su https://github.com/kloopko/kohana-pagination