牛骨文教育服务平台(让学习变的简单)
博文笔记

TP5分页类使用——超级简单好用

创建时间:2017-11-17 投稿人: 浏览次数:854

首先知道最原始的分页如何实现。

页面传进来一个p表示当前请求的页码,控制器接受到参数,组装到sql中,并且配置page的配置信息,例如,每页显示多少数据,然后利用sql先查出总个数,然后利用分页关系组装sql,查出来之后的得到对应的数据,接下来开始解析分页按钮等信息的渲染。经过漫长复杂的处理才可以完成一个分页的使用。

TP分页类相当简单。

其中将获取当前页码自动化获取,根据model自动组装sql,结合render渲染出需要的分页按钮。相当简单。

具体说下,

public function getlist()
{
$cartoon_where = ["block_sta" => 3,  "is_on_show" => 1];
$orderBy = ["hot_num" => "desc"];
$hot_cartoons = Model("cartoon")
    ->field("id,title,thumb,author,last_chapt,last_chapt_num,tags,serial_sta")
    ->where($cartoon_where)
    ->order($orderBy)
    ->paginate(5, false, ["var_page"=>"p"]);
return $hot_cartoons;
}

只需要在model中使用一个  ,配置url中表示页码的字符,这里用p,其实默认的是 "page"  .如果使用了page也可以任何东西都不用配置

paginate(5, false, ["var_page"=>"p"]);

所有获取页码,组装sql,查询总数等都是 类完成,但要注意调用的是model,而且返回的是一个bootstrap对象,但是这个data数据可以直接使用。
简直不能更爽~

 

例子详情参见:
控制器:

appmobilecontroller
ank    ->book_hot()    和   ->ajax_ranking_info_book()

注意:
这个分页参数必须是get方式传递过来的。post的方式不支持


模板中常用

{if($books->isEmpty())}
//是否为空的判断

{$books->currentPage()}
//当前页码的获取

{$books->lastPage()}
//最后一页页码的获取




声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。