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)

È stato utile?

Soluzione

Questo è ciò che ha funzionato per me:

  1. 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).
  2. Installa il modulo in moduli/paginazioni.
  3. Aggiungi il modulo in bootstrap.php:

    Kohana::modules(array(
        // ... other modules ...
        'pagination' => MODPATH.'pagination'
    ));
    
  4. Copia il file di configurazione da moduli/pagination/config/pagination.php su applicazione/config/pagination.php.

  5. 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));
     }
    
  6. Crea la tuaview/pagina come segue:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top