thinkphp3.2.3中分类的功能调用的文件$THINKPHP_HOME/ThinkPHP/Library/Think/Page.class.php,这个文件只有150行左右,不复杂,比较容易看懂,方便自己修改,也可以在此基础上进行新功能的扩展。
控制器
$THINKPHP_HOME/Application/Home/Controller/PageController.class.php
1 userObj = D('page');10 }11 12 //第一种:利用Page类和limit方法进行分页13 public function pageLimit(){14 $this->userObj = $this->getUserObj();15 16 $data = $this->userObj->pageLimit();17 18 19 $list = $data['list'];20 $page = $data['page'];21 22 //var_dump($data);23 24 $this->assign('list', $list);// 赋值数据集25 $this->assign('page', $page);// 赋值分页输出26 $this->display('Page:page'); // 输出模板27 }28 29 //第一种:利用Page类和page方法进行分页30 public function pagePage(){31 $this->userObj = $this->getUserObj();32 33 $data = $this->userObj->pagePage();34 35 36 $list = $data['list'];37 $page = $data['page'];38 39 //var_dump($data);40 41 $this->assign('list', $list);// 赋值数据集42 $this->assign('page', $page);// 赋值分页输出43 $this->display('Page:page'); // 输出模板44 }45 }46 ?>
模型$THINKPHP_HOME/Application/Home/Model/PageModel.class.php
1 userObj = M('User', '99game_');10 }11 12 //第一种:利用Page类和limit方法进行分页13 public function pageLimit() {14 $User = $this->getUserObj();15 $count = $User->where('level=1')->count();// 查询满足要求的总记录数16 $Page = new \Think\Page($count, 3);// 实例化分页类 传入总记录数和每页显示的记录数(3)17 18 //配置theme是用来设置分页要显示哪些数据项的,比如%HEADER%表示“共XX条记录”19 $Page->setConfig('theme', '%HEADER% %NOW_PAGE%/%TOTAL_PAGE% %FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%');20 $show = $Page->show();// 分页显示输出21 22 // 进行分页数据查询 注意limit方法的参数要使用Page类的属性23 $list = $User->where('level=1')->order('user_id desc')->limit($Page->firstRow.','.$Page->listRows)->select();24 echo "sql: " . $User->_sql() . "\n";25 26 return array('list' => $list, 'page' => $show);27 }28 29 //第一种:利用Page类和page方法进行分页30 public function pagePage() {31 $User = $this->getUserObj(); // 实例化User对象32 // 进行分页数据查询 注意page方法的参数的前面部分是当前的页数使用 $_GET[p]获取33 $count = $User->where('level=1')->count();// 查询满足要求的总记录数34 $Page = new \Think\Page($count, 3);// 实例化分页类 传入总记录数和每页显示的记录数35 $show = $Page->show();// 分页显示输出36 37 $list = $User->where('level=1')->order('user_id desc')->page($_GET['p'].',3')->select();38 39 return array('list' => $list, 'page' => $show);40 }41 }42 ?>
模板$THINKPHP_HOME/Application/Home/View/Page/page.html
1 数据列表23 { $k} : { $key} : { $data.user_id} : { $data.email} : { $data.token} 4 5 6 分页数据7 { $page}
在浏览器中分别输入以下两个网址进行测试,可以输出正确的结果
http://localhost:81/research/thinkphp_3.2.3_full/index.php/Home/Page/pageLimithttp://localhost:81/research/thinkphp_3.2.3_full/index.php/Home/Page/pagePage
延伸阅读: