用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4707|回复: 7
收起左侧

1.7.1--做分页时,url路由显示问题!

[复制链接]
发表于 2009-5-4 17:34:34 | 显示全部楼层 |阅读模式
本帖最后由 zhoulei 于 2009-5-4 17:42 编辑

今天接触CI第3天,看到Hex发布了以个分页教程的帖子,自己也试着做了下,但是在点击分页时发现地址栏显示的是:http://localhost/CodeIgniter_1.7.1/index.php/cmsg/lookMsg/&per_page=5
而我想要的是和教程上一样的结果:http://localhost/CodeIgniter_1.7.1/index.php/cmsg/lookMsg/5
查看了好些资料都没弄清楚.最后我把Hex发的附件down下来测试发现:
http://localhost/pagination/index.php/books/index/5
这个又可以,不知道是版本的问题还是url路由里要设置什么,希望有高手能帮下我这个小菜鸟

刚对比了下在CI_Pagination里面1.7.1多了2个属性
var $page_query_string = FALSE;
var $query_string_segment = 'per_page';
发表于 2009-5-4 18:18:25 | 显示全部楼层
你错在那里了?
 楼主| 发表于 2009-5-4 18:34:22 | 显示全部楼层
没有报错,就是分的页面都是显示前5条记录,如果有这个
var $query_string_segment = 'per_page';的话.
$data['query']=$this->msg->listMsg($config['per_page'],$this->uri->segment(3));
后面的第二个参数好像就不能用$this->uri->segment(3),因为这里面不只是数字了,是"&per_page=10"了.
最后我是把1.5的CI_Pagination代码覆盖掉了1.7.1
发表于 2009-5-4 22:36:05 | 显示全部楼层
明显是 $page_query_string 设置为 true 了,再仔细检查一下,我那个教程是老版本的 CI。
 楼主| 发表于 2009-5-5 10:41:02 | 显示全部楼层
恩  解决了.CI_pagination源码里的一段:
if ($CI->config->item('enable_query_strings') === TRUE OR $this->page_query_string === TRUE)
                {
                        $this->base_url = rtrim($this->base_url).'&'.$this->query_string_segment.'=';
                }
                else
                {
                        $this->base_url = rtrim($this->base_url, '/') .'/';
                }
$page_query_string 设置为 false外  config里config['enable_query_strings'] = false;也要设置为 false;
 楼主| 发表于 2009-5-5 10:44:01 | 显示全部楼层
4# Hex
 楼主| 发表于 2009-5-5 10:47:33 | 显示全部楼层
如果我把$page_query_string 设置为true了 怎么来接收 per_page这个参数的值呢? 我想一般网站的链接参数不止一个吧,比如有action,page什么的.
发表于 2009-5-5 11:50:47 | 显示全部楼层
GET 方式取参数,论坛置顶帖里有说明。

本版积分规则