Upgrade Pagination¶
What has been changed¶
- You have to change the views and also the controller in order to use the new pagination library.
- If you want to customize the pagination links, you need to create View Templates.
- In CI4 the pagination uses the actual page number only. You can’t use the starting index (offset) for the items which is the default in CI3.
- If you use CodeIgnite\Model, you can use the built-in method in the Model class.
Upgrade Guide¶
Within the views change to following:
<?php echo $this->pagination->create_links(); ?>
to<?= $pager->links() ?>
Within the controller you have to make the following changes:
- You can use the built-in
paginate()
method on every Model. Have a look at the code example below to see how you setup the pagination on a specific model.
- You can use the built-in
Code Example¶
Codeigniter Version 3.11¶
$this->load->library('pagination');
$config['base_url'] = base_url().'users/index/';
$config['total_rows'] = $this->db->count_all('users');
$config['per_page'] = 10;
$config['uri_segment'] = 3;
$config['attributes'] = array('class' => 'pagination-link');
$this->pagination->initialize($config);
$data['users'] = $this->user_model->get_users(FALSE, $config['per_page'], $offset);
$this->load->view('posts/index', $data);
Codeigniter Version 4.x¶
$model = new \App\Models\UserModel();
$data = [
'users' => $model->paginate(10),
'pager' => $model->pager,
];
echo view('users/index', $data);