分页查询

通常情况。我们在分页显示数据的时候。会传个分页参数。比如在url后带个page?=2。这边的2表示是第二页。

对应的php代码通常是这样:

  1. //controller 中接收当前页数
  2. $page = Input::getInt('page', 1);
  3. $page < 1 && $page = 1;
  4. //model中根据传过来的$page查询
  5. $this->db()->table('user')
  6. ->select(($page - 1) * Config::get('page_nums'), Config::get('page_nums'));//page_nums为配置中配置的每页显示多少条

每次都要接收page参数。并判断有效性,select方法每次都要计算从哪一条开始。

为了节省这个步骤从v2.7起db中添加了paginate方法。即上面的代码可简化为

  1. $this->db()->table('user')->paginate(Config::get('page_nums'));

paginate方法内部会自动获取page参数并判断是否合法,然后根据传入的条数自动计算并以合适的参数调用select

原文: http://doc.cmlphp.com/devintro/model/mysql/paginate.html