分页类
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”。 记住,你可以重新路由你的 URI,如果你需要一个不同的结构。
- total_rows 这个数字展示了你需要做分页的数据总行数。这个数值是你查询数据库得到的数据总量。
- per_page 这个数字计划了你每个页面中希望展示的项目数量,在上面的那个例子中,你可以得到每页显示 20 个项目。
当你没有分页需要显示时,create_links() 方法会返回一个空的字符串。
在配置文件中设置参数
如果你不喜欢用以上的方法设定你的喜欢,你可以用简单的创建一个新的文件叫做 pagination.php,把 $config 数组加到这个文件中。把文件保存至 config/pagination.php 可以让它被自动使用。用这个方法,你不在需要使用 $this->pagination->initialize 方法。
自定义分页
下面是一个参数列表,你可以通过初始化方法来定制你喜欢的显示效果。
$config['uri_segment'] = 3;
分页方法自动测定你 URI 的哪个部分包含页数。如果你需要一些不一样的,你可以明确指定它。
$config['num_links'] = 2;
放在你当前页码的前面和后面的“数字”链接的数量。比方说值为 2 就会在每一边放置 2 个数字链接,就像此页顶端的示例链接那样。
$config['use_page_numbers'] = TRUE;
默认分页URL中是显示每页记录数,启用use_page_numbers后显示的是当前页码,如下:
不启用:http://example.com/index.php/test/page/20
启用后:http://example.com/index.php/test/page/1
$config['page_query_string'] = TRUE
默认情况下,分页类库假设你使用 URI 段,并像这样构造你的链接:
http://example.com/index.php/test/page/20
如果你把 $config['enable_query_strings'] 设置为 TRUE,你的链接将自动地被用查询字符串重写。这个选项也可以被明确地设置。把 $config['page_query_string'] 设置为 TRUE,分页链接将变成:
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>';
把关闭的标签放在所有结果的右侧。
自定义起始链接
$config['first_link'] = 'First';
你希望在分页的左边显示“第一页”链接的名字。如果你不希望显示,可以把它的值设为 FALSE 。
$config['first_tag_open'] = '<div>';
“第一页”链接的打开标签。
$config['first_tag_close'] = '</div>';
“第一页”链接的关闭标签。
自定义结束链接
$config['last_link'] = 'Last';
你希望在分页的右边显示“最后一页”链接的名字。如果你不希望显示,可以把它的值设为 FALSE 。
$config['last_tag_open'] = '<div>';
“最后一页”链接的打开标签。
$config['last_tag_close'] = '</div>';
“最后一页”链接的关闭标签。
自定义“下一页”链接
$config['next_link'] = '>';
你希望在分页中显示“下一页”链接的名字。如果你不希望显示,可以把它的值设为 FALSE 。
$config['next_tag_open'] = '<div>';
“下一页”链接的打开标签。
$config['next_tag_close'] = '</div>';
“下一页”链接的关闭标签。
自定义“上一页”链接
$config['prev_link'] = '<';
你希望在分页中显示“上一页”链接的名字。如果你不希望显示,可以把它的值设为 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;
// 不显示“数字”链接
给链接添加 CSS 类
如果你想要给每一个链接添加 CSS 类,你可以添加如下配置:
$config['anchor_class'] = "";
//添加 CSS 类