在我的名为文章的控制器中,我有以下功能,我用它来显示数据库中的数据:
function get_all(){
$this->load->library('pagination');
$config['base_url'] = base_url().'article/get-all';
$config['total_rows'] = 2; // example
$config['per_page'] = 1;
$config['num_links'] = 20;
$config['full_tag_open'] = '<div class="pagination" align="center">';
$config['full_tag_close'] = '</div>';
$this->pagination->initialize($config);
$this->load->model('mod_articles');
$data['records']= $this->mod_articles->get_articles_this_year($config['per_page'],$this->uri->segment(3));
$this->load->view('view_article_list',$data);
}
一般来说,达到该功能的网址是:http://localhost/article/get_all
,但要使网址看起来像http://localhost/article/get-all
,请在config / route.php中添加以下内容:
$route['article/get-all'] = "article/get_all";
工作正常,但当我点击分页链接转到下一页时,会显示 404找不到页面
您能告诉我如何正确使用URI路由通配符吗?
我在config / route.php中也有以下内容,以避免索引显示在url
中 $route['article/(:any)'] = "article/index/$1";
如果删除上述行,则分页有效。
答案 0 :(得分:3)
分页类是否会向链接添加任何额外的URI段,例如:
/article/get-all/page/5
如果,那么,你应该设置两条路线:
$route['article/get-all'] = "article/get_all";
$route['article/get-all/(:any)/(:any)'] = "article/get_all/$1/$2";
答案 1 :(得分:0)
我没有看到你包含uri_segment
的配置,分页库使用此配置。
$config["uri_segment"] = 3;
$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
将其用作
$data['records']= $this->mod_articles->get_articles_this_year($config['per_page'],$page);
在查询中直接附加$this->uri->segment(3)
会返回NULL
,因为如果url段无效,则返回FALSE,而sql limit
需要的是整数从哪里开始。