Eyoucms程序开发:分页
分页实现
| 版本 | 新增功能 |
|---|---|
| 5.0.5 |
分页方法返回think\Paginator对象(用法不变) |
| 5.0.1 | 支持第二个参数直接传入总记录数 |
ThinkPHP5.0内置了分页实现,要给数据添加分页输出功能在5.0变得非常简单,可以直接在Db类查询的时候调用paginate方法:
// 查询状态为1的用户数据 并且每页显示10条数据
$list = Db::name('user')->where('status',1)->paginate(10);
// 把分页数据赋值给模板变量list
$this->assign('list', $list);
// 渲染模板输出
return $this->fetch();
也可以改成模型的分页查询代码:
// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10);
// 把分页数据赋值给模板变量list
$this->assign('list', $list);
// 渲染模板输出
return $this->fetch();
模板文件中分页输出代码如下:
<div>
<ul>
{volist name='list' id='user'}
<li> {$user.nickname}li>
{/volist}
ul>
div>
{$list->render()}
也可以单独赋值分页输出的模板变量
// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10);
// 获取分页显示
$page = $list->render();
// 模板变量赋值
$this->assign('list', $list);
$this->assign('page', $page);
// 渲染模板输出
return $this->fetch();
模板文件中分页输出代码如下:
<div>
<ul>
{volist name='list' id='user'}
<li> {$user.nickname}li>
{/volist}
ul>
div>
{$page}
默认情况下,生成的分页输出是完整分页功能,带总分页数据和上下页码,分页样式只需要通过样式修改即可,完整分页默认生成的分页输出代码为:
<ul class="pagination">
<li><a href="?page=1">«a>li>
<li><a href="?page=1">1a>li>
<li class="active"><span>2span>li>
<li class="disabled"><span>»span>li>
ul>
传入总记录数( V5.0.1)
V5.0.1版本开始,支持传入总记录数而不会自动进行总数计算,例如:
// 查询状态为1的用户数据 并且每页显示10条数据 总记录数为1000
$list = User::where('status',1)->paginate(10,1000);
// 获取分页显示
$page = $list->render();
// 模板变量赋值
$this->assign('list', $list);
$this->assign('page', $page);
// 渲染模板输出
return $this->fetch();
分页后数据处理 (V5.0.9)
V5.0.9版本开始 支持分页类后数据直接each遍历处理,方便修改分页后的数据,而不是只能通过模型的获取器来补充字段。
$list = User::where('status',1)->paginate()->each(function($item, $key){
$item->nickname = 'think';
});
如果是Db类操作分页数据的话,each方法的闭包函数中需要使用返回值,例如:
$list = Db::name('user')->where('status',1)->paginate()->each(function($item, $key){
$item['nickname'] = 'think';
return $item;
});
简洁分页
如果你仅仅需要输出一个 仅仅只有上下页的分页输出,可以使用下面的简洁分页代码:
// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10,true);
// 把分页数据赋值给模板变量list
$this->assign('list', $list);
// 渲染模板输出
return $this->fetch();
简洁分页模式的输出代码为:
<ul class="pager">
<li><a href="?page=1">«a>li>
<li class="disabled"><span>»span>li>
ul>
由于简洁分页模式不需要查询总数据数,因此可以提高查询性能。
分页参数
主要的分页参数如下:
| 参数 | 描述 |
|---|---|
| list_rows | 每页数量 |
| page | 当前页 |
| path | url路径 |
| query | url额外参数 |
| fragment | url锚点 |
| var_page | 分页变量 |
| type | 分页类名 |
分页参数的设置方式有两种,第一种是在配置文件中定义,例如:
//分页配置
'paginate' => [
'type' => 'bootstrap',
'var_page' => 'page',
],
type属性支持命名空间,例如:
//分页配置
'paginate' => [
'type' => '\org\page\bootstrap',
'var_page' => 'page',
],
也可以在调用分页方法的时候传入,例如:
$list = Db::name('user')->where('status',1)->paginate(10,true,[
'type' => 'bootstrap',
'var_page' => 'page',
]);
相关文档
- 搜狗站长工具怎么用?SEO优化功能全解析
- 新站如何快速推广_低成本高效方法详解
- 新网站如何做推广?网站推广免费方法有哪些?
- 旺道seo优化究竟适合新站使用吗深入解析其效果与方法
- 好搜排名提升软件怎么用?手把手教你正确操作方法
- 新站如何快速提升排名?长尾关键词挖掘方法有哪些?
- 新站流量生成方法如何快速获取访问3步实操指南
- 安卓优化大师hd功能具体能做什么如何使用效果最好?
- 如何设计qq空间——免费装扮方法真的靠谱吗?
- 免费网站收录平台有哪些?_新站免费收录方法怎么做?
- 东莞网络推广方法_百度推广公司选择指南
- 华夏seo软件使用教程:新手如何快速掌握核心功能?
- 云南网站推广方法有哪些?云南SEO优化报价高吗?
- 云搜seo优化方法?云搜seo效果监测?
- 南京丁丁地图公交查询怎么用?丁丁地图生活服务功能有哪些?
- 新乡SEO优化技巧_新乡SEO实战方法?
- 效果付费怎么做?详细方法步骤指南
- 搜狗关键词快速排名方法真的有效吗?
- SEO伴侣怎么用竞争分析功能新手快速上手教程
- 新站搜索关键词排名技巧与提升方法全解读
上一篇: Eyoucms程序开发:多语言
下一篇: Eyoucms程序开发:上传

