本文目录:ajax
页面传进来一个p表示当前请求的页码,控制器接受到参数,组装到sql中,而且配置page的配置信息,例如,每页显示多少数据,而后利用sql先查出总个数,而后利用分页关系组装sql,查出来以后的获得对应的数据,接下来开始解析分页按钮等信息的渲染。通过漫长复杂的处理才能够完成一个分页的使用。sql
其中将获取当前页码自动化获取,根据model自动组装sql,结合render渲染出须要的分页按钮。至关简单。bootstrap
具体说下,app
1 public function getlist() 2 { 3 $cartoon_where = ['block_sta' => 3, 'is_on_show' => 1]; 4 $orderBy = ['hot_num' => 'desc']; 5 $hot_cartoons = Model('cartoon') 6 ->field('id,title,thumb,author,last_chapt,last_chapt_num,tags,serial_sta') 7 ->where($cartoon_where) 8 ->order($orderBy) 9 ->paginate(5, false, ['var_page'=>'p']); 10 return $hot_cartoons; 11 }
只须要在model中使用一个 ,配置url中表示页码的字符,这里用p,其实默认的是 'page' .若是使用了page也能够任何东西都不用配置post
paginate(5, false, ['var_page'=>'p']);
全部获取页码,组装sql,查询总数等都是 类完成,但要注意调用的是model,并且返回的是一个bootstrap对象,可是这个data数据能够直接使用。
简直不能更爽~url
例子详情参见:
控制器:spa
app\mobile\controller\rank ->book_hot() 和 ->ajax_ranking_info_book()
注意:
这个分页参数必须是get方式传递过来的。post的方式不支持code
{if($books->isEmpty())} //是否为空的判断 {$books->currentPage()} //当前页码的获取 {$books->lastPage()} //最后一页页码的获取