分页类

CodeIgniter 的分页类是一个非常简单,并且 100% 用户自定义的类。

分页类允许你通过提交链接从一个页面导航至另一个页面,如下:

  1. « First < 1 2 3 4 5 > Last »

例子

这里有一个例子展示了如何在你的控制器里创建一个分页:

  1. $this->load->library('pagination');
  2. $config['base_url'] = 'http://example.com/index.php/test/page/';
  3. $config['total_rows'] = 200;
  4. $config['per_page'] = 20;
  5. $this->pagination->initialize($config);
  6. echo $this->pagination->create_links();

提示:

$config 数组包含了你的配置参数。这些参数被 $this->pagination->initialize 方法传递,如上面的例子所展示。以下是对这些项目的描述:

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

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

在配置文件中设置参数

如果你不喜欢用以上的方法进行偏好设置,你可以简单地创建一个新的文件叫做 pagination.php,把 $config 数组加到这个文件中。把文件保存至 config/pagination.php 可以让它被自动使用。用这个方法,你不再需要使用 $this->pagination->initialize 方法。

自定义分页

下面是一个参数列表,你可以通过初始化方法来定制你喜欢的显示效果。

$config['uri_segment'] = 3;

分页方法自动测定你 URI 的哪个部分包含页数。如果你需要一些不一样的,你可以明确指定它。

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

$config['use_page_numbers'] = TRUE;

默认分页URL中是显示每页记录数,启用use_page_numbers后显示的是当前页码,如下:

  1. 不启用:http://example.com/index.php/test/page/20启用后:http://example.com/index.php/test/page/1

$config['page_query_string'] = TRUE

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

  1. http://example.com/index.php/test/page/20

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

  1. http://example.com/index.php?c=test&m=page&per_page=20

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

添加封装标签

如果你希望在整个分页周围围绕一些标签,你可以通过下面的两种方法:

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

把打开的标签放在所有结果的左侧。

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

把关闭的标签放在所有结果的右侧。

自定义起始链接

你希望在分页的左边显示“第一页”链接的名字。如果你不希望显示,可以把它的值设为 FALSE 。

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

“第一页”链接的打开标签。

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

“第一页”链接的关闭标签。

自定义结束链接

你希望在分页的右边显示“最后一页”链接的名字。如果你不希望显示,可以把它的值设为 FALSE 。

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

“最后一页”链接的打开标签。

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

“最后一页”链接的关闭标签。

自定义“下一页”链接

你希望在分页中显示“下一页”链接的名字。如果你不希望显示,可以把它的值设为 FALSE 。

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

“下一页”链接的打开标签。

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

“下一页”链接的关闭标签。

自定义“上一页”链接

你希望在分页中显示“上一页”链接的名字。如果你不希望显示,可以把它的值设为 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>';

“数字”链接的关闭标签。

隐藏“数字”链接

如果你不想显示“数字”链接(比如只显示 “上一页” 和 “下一页”链接)你可以添加如下配置:

  1. $config['display_pages'] = FALSE;
  2. // 不显示“数字”链接

给链接添加 CSS 类

如果你想要给每一个链接添加 CSS 类,你可以添加如下配置:

  1. $config['anchor_class'] = "";
  2. //添加 CSS 类

翻译贡献者:csfhc, drazzi, Fanbin, Hex, IT不倒翁, jianghaosen, li_star, peirancao, roln, sankai, yadgen, 笼中