我试图实现的是这样通过分页输出的urls:
http://www.mysite.com/users/page5或
http://www.mysite.com/users/page-5目前,它将使用如下URI段:
http://www.mysite.com/users/page/5如果使用前两个URL,我可以修改routes.php配置文件来路由路径。所以这不是问题所在。
我遇到的问题是,如何初始化分页的设置,以便$this->pagination->create_links()将创建一个具有类似于第一或第二格式链接的项的分页?
如果你需要更多的解释或例子,请告诉我。我不太擅长解释事情。:)
谢谢
发布于 2013-12-28 05:22:17
此功能已经存在于CodeIgniter 3.0的开发版本中。您可以在分页类位于这里时查看它。
要使用这个库,您可以使用所有的CI3.0(相当稳定),或者B)通过创建application/libraries/MY_Pagination.php并填充上面链接的内容来扩展(或者更实际地说,替换)分页库。(完全披露:我已经有一段时间没有修改CI,所以我不知道有什么变化,因为这可能会导致错误的任何这个答案。)
若要使用所需的功能,请指定基本URL减去page-X段,设置要在URI段中使用页码而不是偏移量,然后指定前缀。
$config['base_url'] = site_url('users');
$config['use_page_numbers'] = true;
$config['prefix'] = 'page-';确保还包括您的其他显而易见的项目,如per_page等。
发布于 2013-12-27 17:14:29
若要更改分页库的功能,可以扩展库并重写create_links()函数。
在应用程序/库/
该文件应该具有以下结构,因此您可以更改或添加其他功能到CI的本机分页库。(直接更改系统目录中的分页库是错误的做法。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Pagination extends CI_Pagination {
public function __construct()
{
parent::__construct();
}
}然后,您需要将create_links()函数添加到您的MY_Pagination类中,从而允许您覆盖其默认功能。下面是您可以更改什么以实现您想要的输出的解释(您可能希望通过向函数添加一个参数来增加灵活性,但这是我能想到的最简单的更改)。
function create_links()
{
// You can copy the exact functionality of this function from:
// system/libraries/Pagination.php
// The line you want to change is:
// $this->base_url = rtrim($this->base_url, '/') .'/';
// Changing to this: $this->base_url = rtrim($this->base_url, '/') .'';
// Will create links in this format: ../page5
// Or changing to this: $this->base_url = rtrim($this->base_url, '/') .'-';
// Will create links in this format: ../page-5
}https://stackoverflow.com/questions/20804320
复制相似问题