2011-09-20 8 views
-1

J'ai un problème. Mon script de pagination Kohana ne fonctionne pas correctement. Doit avoir comme suit: [http://127.0.0.1/?page=1], mais j'ai ce qui suit - [http://127.0.0.1/index.php/?page=1] et les enregistrements de la base de données à la maison la page est 2 (le nombre total d'enregistrements est de 2, j'ai défini items_per_page sur 1), mais je dois avoir un seul enregistrement. Où est le problème?Pourquoi la pagination ne fonctionne pas correctement?

Controller:

public function action_index() 
    { 
     $pagination = Pagination::factory(array(
     'total_items'=> Model::factory('index')->get_count(), 
     'items_per_page' => 1,)); 

     $articles_ = Model::factory('index')->do_magic(); 
     $this->template->page_title = 'Sākums'; 
     $this->template->site_name = Kohana::$config->load('common')->get('site_name'); 
     $this->template->content = View::factory('index/index') 
       ->set('query', $articles_) 
       ->set('pagjinaacija', $pagination->render()); 
     $this->template->styles[] = 'index/index'; 
    } 

Voir

<?php 
foreach($query as $row) { 
    echo '<h2>'.$row['title'].'</h2>'; 
    echo '<p style="margin:0">'.$row['content'].'</p>'; 
} 
echo $pagjinaacija; 
?> 

Et le modèle

Class Model_Index Extends Model { 
    public function get_count() { 
    return DB::query(Database::SELECT, 'SELECT COUNT(*) AS count FROM posts')->execute()->get('count'); 

} 
    public function do_magic() { 
     $query = DB::query(Database::SELECT, 'SELECT * FROM posts ORDER By id DESC')->execute()->as_array(); 
     return $query; 


    } 
} 
+0

Supprimer vos questions serait injuste pour les personnes qui ont pris leur temps pour y répondre. – NullUserException

Répondre

1

Il y a 2 problèmes:

  1. Yo Vous n'utilisez pas les règles de réécriture d'url pour réécrire /index.php?page=2 dans /? page = 2
  2. Vous n'utilisez pas réellement le paramètre de requête de page pour filtrer vos enregistrements renvoyés par la base de données. affichez-les tous.

L'objet de pagination est uniquement utilisé pour rendre un contrôle de pagination, pas pour effectuer le filtrage réel des enregistrements db.

+0

Allain, comment faire? – reGative

+0

http://www.ninjapenguin.co.uk/blog/2008/06/21/kohana-pagination-tutorial/ –

1

peut-être vous définissez bootstrap.php:

Route::set('index_page','yourcontroller/index(/<page>)', array('page' => '[0-9]+')) 
    ->defaults(array(
     'controller' => 'yourcontroller', 
     'action' => 'index', 
    )); 
Questions connexes