分页查询
通常情况。我们在分页显示数据的时候。会传个分页参数。比如在url后带个page?=2。这边的2表示是第二页。
对应的php代码通常是这样:
//controller 中接收当前页数
$page = Input::getInt('page', 1);
$page < 1 && $page = 1;
//model中根据传过来的$page查询
$this->db()->table('user')
->select(($page - 1) * Config::get('page_nums'), Config::get('page_nums'));//page_nums为配置中配置的每页显示多少条
每次都要接收page
参数。并判断有效性,select方法每次都要计算从哪一条开始。
为了节省这个步骤从v2.7起db中添加了paginate方法。即上面的代码可简化为
$this->db()->table('user')->paginate(Config::get('page_nums'));
在paginate
方法内部会自动获取page
参数并判断是否合法,然后根据传入的条数自动计算并以合适的参数调用select
原文: http://doc.cmlphp.com/devintro/model/mysql/paginate.html