也可以改成模型的分页查询代码:

  1. // 查询状态为1的用户数据 并且每页显示10条数据
  2. $list = User::where('status',1)->paginate(10);
  3. // 把分页数据赋值给模板变量list
  4. $this->assign('list', $list);
  5. // 渲染模板输出
  6. return $this->fetch();

模板文件中分页输出代码如下:

  1. <div>
  2. <ul>
  3. {volist name='list' id='user'}
  4. <li> {$user.nickname}</li>
  5. {/volist}
  6. </ul>
  7. </div>
  8. {$list->render()}

也可以单独赋值分页输出的模板变量

  1. // 查询状态为1的用户数据 并且每页显示10条数据
  2. $list = User::where('status',1)->paginate(10);
  3. // 模板变量赋值
  4. $this->assign('list', $list);
  5. $this->assign('page', $page);
  6. // 渲染模板输出
  7. return $this->fetch();

模板文件中分页输出代码如下:

  1. <ul class="pagination">
  2. <li><a href="?page=1">&laquo;</a></li>
  3. <li><a href="?page=1">1</a></li>
  4. <li class="active"><span>2</span></li>
  5. <li class="disabled"><span>&raquo;</span></li>
  6. </ul>

V5.0.1版本开始,支持传入总记录数而不会自动进行总数计算,例如:

  1. // 查询状态为1的用户数据 并且每页显示10条数据 总记录数为1000
  2. $list = User::where('status',1)->paginate(10,1000);
  3. // 获取分页显示
  4. $page = $list->render();
  5. // 模板变量赋值
  6. $this->assign('list', $list);
  7. $this->assign('page', $page);
  8. // 渲染模板输出

分页后数据处理 (V5.0.9)

版本开始 支持分页类后数据直接each遍历处理,方便修改分页后的数据,而不是只能通过模型的获取器来补充字段。

  1. $list = User::where('status',1)->paginate()->each(function($item, $key){
  2. $item->nickname = 'think';
  3. });

如果是Db类操作分页数据的话,each方法的闭包函数中需要使用返回值,例如:

如果你仅仅需要输出一个 仅仅只有上下页的分页输出,可以使用下面的简洁分页代码:

  1. // 查询状态为1的用户数据 并且每页显示10条数据
  2. $list = User::where('status',1)->paginate(10,true);
  3. // 把分页数据赋值给模板变量list
  4. $this->assign('list', $list);
  5. // 渲染模板输出
  6. return $this->fetch();
  1. <ul class="pager">
  2. <li><a href="?page=1">&laquo;</a></li>
  3. <li class="disabled"><span>&raquo;</span></li>
  4. </ul>

主要的分页参数如下:

参数描述
list_rows每页数量
page当前页
pathurl路径
queryurl额外参数
fragmenturl锚点
var_page分页变量
type分页类名

分页参数的设置方式有两种,第一种是在配置文件中定义,例如:

  1. //分页配置
  2. 'paginate' => [
  3. 'type' => 'bootstrap',
  4. 'var_page' => 'page',
  5. ],

type属性支持命名空间,例如:

也可以在调用分页方法的时候传入,例如:

  1. $list = Db::name('user')->where('status',1)->paginate(10,true,[
  2. 'type' => 'bootstrap',
  3. ]);