1 教程-内容提要
1.1 CodeIgniter3.1教程——开始
1.2 加载静态内容
1.3 读取新闻条目
1.4 创建新闻条目
2 常规主题
2.1 CodeIgniter URL
2.2 控制器
2.3 保留名称
2.4 视图
2.5 模型
2.6 辅助函数
2.7 使用 CodeIgniter 类库
2.8 创建类库
2.9 使用 CodeIgniter 驱动器
2.10 创建驱动器
2.11 创建核心系统类
2.12 创建附属类
2.13 钩子 - 扩展框架核心
2.14 自动加载资源
2.15 公共函数
2.16 兼容性函数
2.17 URI 路由
2.18 错误处理
2.19 网页缓存
2.20 程序分析
2.21 以 CLI 方式运行
2.22 管理你的应用程序
2.23 处理多环境
2.24 在视图文件中使用 PHP 替代语法
2.25 安全
2.26 PHP 开发规范
3 类库参考
3.1 基准测试类
3.2 缓存驱动器
3.3 日历类
3.4 购物车类
3.5 配置类
3.6 Email 类
3.7 加密类(废弃)
3.8 加密类(新版)
3.9 文件上传类
3.10 表单验证类
3.11 FTP 类
3.12 图像处理类
3.13 输入类
3.14 Javascript 类
3.15 语言类
3.16 加载器类
3.17 迁移类
3.18 输出类
3.19 分页类
3.20 模板解析类
3.21 安全类
3.22 Session 类
3.23 HTML 表格类
3.24 引用通告类
3.25 排版类
3.26 单元测试类
3.27 URI 类
3.28 用户代理类
3.29 XML-RPC 与 XML-RPC 服务器类
3.30 Zip 编码类
4 数据库参考
4.1 数据库快速入门: 示例代码
4.2 数据库配置
4.3 连接你的数据库
4.4 查询
4.5 生成查询结果
4.6 查询辅助函数
4.7 查询构造器类
4.8 事务
4.9 数据库元数据
4.10 自定义函数调用
4.11 查询缓存
4.12 数据库工厂类
4.13 数据库工具类
4.14 数据库驱动器参考
5 辅助函数参考
5.1 数组辅助函数
5.2 验证码辅助函数
5.3 Cookie 辅助函数
5.4 日期辅助函数
5.5 目录辅助函数
5.6 下载辅助函数
5.7 邮件辅助函数
5.8 文件辅助函数
5.9 表单辅助函数
5.10 HTML 辅助函数
5.11 Inflector 辅助函数
5.12 语言辅助函数
5.13 数字辅助函数
5.14 路径辅助函数
5.15 安全辅助函数
5.16 表情辅助函数(废弃)
5.17 字符串辅助函数
5.18 文本辅助函数
5.19 排版辅助函数
5.20 URL 辅助函数
5.21 XML 辅助函数

分页类

2017-12-03 19:58:54
linefo
1369
最后编辑:linefo 于 2017-12-03 21:03:03

分页类

CodeIgniter 的分页类非常容易使用,而且它 100% 可定制,可以通过动态的参数, 也可以通过保存在配置文件中的参数。

如果你还不熟悉 "分页" 这个词,它指的是用于你在页面之间进行导航的链接。像下面这样:

« First  < 1 2 3 4 5 >  Last »

例子

下面是一个简单的例子,如何在你的 控制器 方法中创建分页:

$this->load->library('pagination');

$config['base_url'] = 'http://example.com/index.php/test/page/';
$config['total_rows'] = 200;
$config['per_page'] = 20;

$this->pagination->initialize($config);

echo $this->pagination->create_links();

说明

如上所示,$config 数组包含了你的配置参数,被传递到 $this->pagination->initialize() 方法。 另外还有二十几个配置参数你可以选择,但是最少你只需要这三个配置参数。下面是这几个参数的含义:

  • base_url 这是一个指向你的分页所在的控制器类/方法的完整的 URL ,在上面的这个例子里, 它指向了一个叫 "Test" 的控制器和它的一个叫 "Page" 的方法。记住,如果你需要一个不同格式的 URL , 你可以 重新路由
  • total_rows 这个数字表示你需要做分页的数据的总行数。通常这个数值是你查询数据库得到的数据总量。
  • per_page 这个数字表示每个页面中希望展示的数量,在上面的那个例子中,每页显示 20 个项目。

当你没有分页需要显示时,create_links() 方法会返回一个空的字符串。

在配置文件中设置参数

如果你不喜欢用以上的方法进行参数设置,你可以将参数保存到配置文件中。 简单地创建一个名为 pagination.php 的文件,把 $config 数组加到这个文件中, 然后将文件保存到 application/config/pagination.php 。这样它就可以自动被调用。 用这个方法,你不再需要使用 $this->pagination->initialize 方法。

自定义分页

下面是所有的参数列表,可以传递给 initialization 方法来定制你喜欢的显示效果。

$config['uri_segment'] = 3;

分页方法自动检测你 URI 的哪一段包含页数,如果你的情况不一样,你可以明确指定它。

$config['num_links'] = 2;

放在你当前页码的前面和后面的“数字”链接的数量。比方说值为 2 就会在每一边放置两个数字链接, 就像此页顶端的示例链接那样。

$config['use_page_numbers'] = TRUE;

默认分页的 URL 中显示的是你当前正在从哪条记录开始分页,如果你希望显示实际的页数,将该参数设置为 TRUE 。

$config['page_query_string'] = TRUE;

默认情况下,分页类假设你使用 URI 段 ,并像这样构造你的链接:

如果你把 $config['enable_query_strings'] 设置为 TRUE,你的链接将自动地被重写成查询字符串格式。 这个选项也可以被明确地设置,把 $config['page_query_string'] 设置为 TRUE,分页链接将变成:

请注意,"per_page" 是默认传递的查询字符串,但也可以使用 $config['query_string_segment'] = '你的字符串' 来配置。

$config['reuse_query_string'] = FALSE;

默认情况下你的查询字符串参数会被忽略,将这个参数设置为 TRUE ,将会将查询字符串参数添加到 URI 分段的后面 以及 URL 后缀的前面。:

http://example.com/index.php/test/page/20?query=search%term

这可以让你混合使用 URI 分段 和 查询字符串参数,这在 3.0 之前的版本中是不行的。

$config['prefix'] = '';

给路径添加一个自定义前缀,前缀位于偏移段的前面。

$config['suffix'] = '';

给路径添加一个自定义后缀,后缀位于偏移段的后面。

$config['use_global_url_suffix'] = FALSE;

当该参数设置为 TRUE 时,会使用 application/config/config.php 配置文件中定义的 $config['url_suffix'] 参数 重写 $config['suffix'] 的值。

添加封装标签

如果你希望在整个分页的周围用一些标签包起来,你可以通过下面这两个参数:

$config['full_tag_open'] = '<p>';

起始标签放在所有结果的左侧。

$config['full_tag_close'] = '</p>';

结束标签放在所有结果的右侧。

自定义第一个链接

$config['first_link'] = 'First';

左边第一个链接显示的文本,如果你不想显示该链接,将其设置为 FALSE 。

注解

该参数的值也可以通过语言文件来翻译。

$config['first_tag_open'] = '<div>';

第一个链接的起始标签。

$config['first_tag_close'] = '</div>';

第一个链接的结束标签。

$config['first_url'] = '';

可以为第一个链接设置一个自定义的 URL 。

自定义最后一个链接

$config['last_link'] = 'Last';

右边最后一个链接显示的文本,如果你不想显示该链接,将其设置为 FALSE 。

注解

该参数的值也可以通过语言文件来翻译。

$config['last_tag_open'] = '<div>';

最后一个链接的起始标签。

$config['last_tag_close'] = '</div>';

最后一个链接的结束标签。

自定义下一页链接

$config['next_link'] = '&gt;';

下一页链接显示的文本,如果你不想显示该链接,将其设置为 FALSE 。

注解

该参数的值也可以通过语言文件来翻译。

$config['next_tag_open'] = '<div>';

下一页链接的起始标签。

$config['next_tag_close'] = '</div>';

下一页链接的结束标签。

自定义上一页链接

$config['prev_link'] = '&lt;';

上一页链接显示的文本,如果你不想显示该链接,将其设置为 FALSE 。

注解

该参数的值也可以通过语言文件来翻译。

$config['prev_tag_open'] = '<div>';

上一页链接的起始标签。

$config['prev_tag_close'] = '</div>';

上一页链接的结束标签。

自定义当前页面链接

$config['cur_tag_open'] = '<b>';

当前页链接的起始标签。

$config['cur_tag_close'] = '</b>';

当前页链接的结束标签。

自定义数字链接

$config['num_tag_open'] = '<div>';

数字链接的起始标签。

$config['num_tag_close'] = '</div>';

数字链接的结束标签。

隐藏数字链接

如果你不想显示数字链接(例如你只想显示上一页和下一页链接),你可以通过下面的代码来阻止它显示:

$config['display_pages'] = FALSE;

给链接添加属性

如果你想为分页类生成的每个链接添加额外的属性,你可以通过键值对设置 "attributes" 参数:

// Produces: class="myclass"
$config['attributes'] = array('class' => 'myclass');

注解

以前的通过 "anchor_class" 参数来设置 class 属性的方法已经废弃。

禁用 "rel" 属性

默认 rel 属性会被自动的被添加到合适的链接上,如果由于某些原因,你想禁用它,你可以用下面的方法:

$config['attributes']['rel'] = FALSE;

类参考

class CI_Pagination
initialize([$params = array()])
参数:
  • $params (array) -- Configuration parameters
返回:

CI_Pagination instance (method chaining)

返回类型:

CI_Pagination

使用提供的参数初始化分页类。

返回:HTML-formatted pagination
返回类型:string

返回分页的代码,包含生成的链接。如果只有一个页面,将返回空字符串。