博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Yii2——在模型(Model)中使用分页(Pagination)
阅读量:4481 次
发布时间:2019-06-08

本文共 2191 字,大约阅读时间需要 7 分钟。

本文链接:https://www.cnblogs.com/alanabc/p/9407193.html

当一次要在一个页面上显示很多数据时, 通常需要将其分成几部分, 每个部分都包含一些数据列表并且一次只显示一部分。 这些部分在网页上被称为 分页。

见 Yii Framework 官方网站网址:

官方案例和网上大多数的例程都是在控制器(Controller)中使用分页(Pagination),这里提供一个在模型(Model)中使用的例程。至于选用哪个,看实际情况决定,我这里是为了方便分割代码逻辑。


准备工作(数据库)

我已经部署好了 Yii2,现在数据库中有一个数据表叫做 order,存放有订单(数据字段略)。

模型 Model

根据 Yii 的命名规则,在 models 文件夹中新建 Order.php 文件,内容和注释如下:

pagination; } /** * 从Order数据表中查询所有条目,并以id字段为基准,进行降序排列输出 * @return mixed */ public function getAll() { // 预查询,此时还没有执行。where()条件查询、orderBy()排序等都应该放在这里 $query = Order::find()->orderBy(['id' => SORT_DESC]); // 获取能够查询到的数据条目数量(这就是条件查询等语句要放在上一行代码的原因),但是还没有执行查询 $count = $query->count(); // 构造分页对象 $this->pagination = new Pagination(['totalCount' => $count]); // 使用分页对象填充limit语句,并获得数据(此时才真正执行数据库查询) return $query->offset($this->pagination->offset) ->limit($this->pagination->limit) ->asArray() ->all(); }}

控制器 Controller

控制器主要控制数据输入输出,需要把上面模型中的数据当作参数传递给视图(View)。在 controllers 文件夹中创建你的控制器类,我这里直接使用 Yii2 Basic版原有的 SiteController.php

getAll(); // 在这里把模型中的分页对象$pagination作为参数pagination传递给视图 return $this->render('orderList', [ 'data' => $data, 'pagination' => $model->getPagination() ]); }}

视图 View

根据 Yii2 的命名规则,在view/site 文件夹内新建视图文件 orderList.php,其内容如下,主要是获得控制器传过来的参数并渲染

订单流水号 收款方 付款方 付款金额 付款时间 操作
暂时没有数据
$pagination]);} catch (Exception $e) { // do nothing}?>

上面代码中的 echo LinkPager::widget(['pagination' => $pagination]); 就把分页按钮给输出了,默认每页20条数据,点击页码就可以输出当页的数据,js 代码什么的都不需要自己动手写。至于样式,当然是自己写 css 咯。

转载于:https://www.cnblogs.com/alanabc/p/9407193.html

你可能感兴趣的文章
asp.net中导出Excel的方法
查看>>
[转]跟紧时代,让你的设计更加popular
查看>>
作业1226
查看>>
mainline.js主线
查看>>
fseek()
查看>>
Python学习笔记——PyQt控件中文字居中显示
查看>>
JAVA环境下利用solrj二次开发SOlR搜索的环境部署常见错误
查看>>
Beta阶段敏捷冲刺前准备
查看>>
mini web框架-3-替换模板
查看>>
Siamese Network简介
查看>>
第六节 MongoDB 状态监控、备份复制及自动分片
查看>>
svg学习(三)rect
查看>>
博客园博文生成章节目录
查看>>
ruby 模块 的引入
查看>>
CI Weekly #21 | iOS 持续集成快速入门指南
查看>>
xml 校验
查看>>
Jquery获取输入框属性file,ajax传输后端,下载图片
查看>>
深入浅出Visual_C动态链接库(Dll)编程(宋宝华)----整理(word)
查看>>
docker运行环境安装-后续步骤(二)
查看>>
Python学习——02-Python基础——【3集合与函数】
查看>>