# 升级分页

## 文档

- CodeIgniter 3.x 分页类文档

- CodeIgniter 4.x 分页文档

## 变更内容

- 要使用新的分页类，必须同时修改视图和控制器。

- 如果要自定义分页链接，则需要创建视图模板。

- 在 CI4 中，分页仅使用实际页码。不能再像 CI3 的默认行为那样，使用条目的起始索引（偏移量）。

- 如果使用 CodeIgnite\Model，则可以使用模型类中的内置方法。

## 升级指南

1. 在视图中做如下修改：

   > - 将 `<?php echo $this->pagination->create_links(); ?>` 改为 `<?= $pager->links() ?>`

2. 在控制器中做如下修改：

   > - 可以在任何模型上使用内置的 `paginate()` 方法。请参见下面的代码示例，了解如何在特定模型上设置分页。

## 代码示例

### CodeIgniter 3.x 版本

    <?php

    $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 4.x 版本

    <?php

    $model = new \App\Models\UserModel();

    $data = [
        'users' => $model->paginate(10),
        'pager' => $model->pager,
    ];

    return view('users/index', $data);