龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

Codeigniter(CI)框架分页函数及相关知识(2)

时间:2014-11-04 15:02来源:网络整理 作者:网络 点击:
分享到:
复制代码 代码如下: $this-model-get_news($config['per_page'],$this-uri-segment(3)); 其实这种写法就是针对b)这种连接形式的。这里的$this-uri-segment(3)就是取到page/20中的记

复制代码 代码如下:

$this->model->get_news($config['per_page'],$this->uri->segment(3)); 

其实这种写法就是针对b)这种连接形式的。这里的$this->uri->segment(3)就是取到page/20中的记录数20。$config['per_page']就是限制输出多少条。
有很大的局限性和误导性。我开始就是死都不知道为什么这么写。。后来才发现,手册才是最好的老师。

当我们把CI分页类的一些参数都配置好了之后,$this->pagination->initialize($config);//配置分页

复制代码 代码如下:

$page = $this->pagination->create_links();  //我们就得到了分页了 

直接传递到视图页,即可。

至于怎么加载模型,怎么存取数据记录,怎么传递变量到视图,这里就不说了,看手册好了。

忘记说了,带查询参数的分页,我是这么做的。视图中将查询参数get提交到控制器的search方法。在search中,用$get = $this->input->get();去获取到查询参数。
然后加载model,用带查询参数和分页参数去读取记录,将结果显示到视图。。

另外还发现个小bug,比如/news/page/-1000这样的时候,下面的分页链接将会出现负值
发现system/libraries/Pagination.php代码如下

复制代码 代码如下:

if ($this->use_page_numbers AND $this->cur_page == 0)  
{  
    $this->cur_page = $base_page;  
}  
//应为  
if ($this->use_page_numbers AND $this->cur_page <= 0)  
{  
    $this->cur_page = $base_page;  


才对吧,经过修改后,这个问题没有了。

精彩图集

赞助商链接