最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

yii2.0表格如何排序

来源:懂视网 责编:小采 时间:2020-11-03 18:23:19
文档

yii2.0表格如何排序

yii2.0表格如何排序:在Yii2.0项目的实际开发中,经常会遇到使用Yii2.0自带的排序功能。展示多条数据时,通常需要对数据按照用户指定的列进行排序。 Yii 使用 yii\data\Sort 对象来代表排序方案的有关信息。 特别地:1、attributes 指定 属性,数据按照其排序。 一个属性可以就
推荐度:
导读yii2.0表格如何排序:在Yii2.0项目的实际开发中,经常会遇到使用Yii2.0自带的排序功能。展示多条数据时,通常需要对数据按照用户指定的列进行排序。 Yii 使用 yii\data\Sort 对象来代表排序方案的有关信息。 特别地:1、attributes 指定 属性,数据按照其排序。 一个属性可以就

在Yii2.0项目的实际开发中,经常会遇到使用Yii2.0自带的排序功能。

展示多条数据时,通常需要对数据按照用户指定的列进行排序。 Yii 使用 yiidataSort 对象来代表排序方案的有关信息。 特别地:

1、attributes 指定 属性,数据按照其排序。 一个属性可以就是简单的一个 model attribute, 也可以是结合了多个 model 属性或者 DB 列的复合属性。下面将给出更多细节。

2、attributeOrders 给出每个属性当前设置的 排序方向。

3、orders 按照低级列的方式给出排序方向。

使用 yiidataSort,首先要声明什么属性能进行排序。 接着从 attributeOrders 或者 orders 取得当前设置的排序信息, 然后使用它们来自定义数据查询。

(推荐学习:yii框架)

下面是排序功能的具体使用方法:

一、设置排序规则

注意引入Sort类,如:use yiidataSort;

// 设置排序字段
 $sortObject = new Sort([
 'sort' => $sort,
 'defaultOrder' => ['id' => SORT_DESC],
 'attributes' => [
 'id' => [
 'asc' => ['id' => SORT_ASC],
 'desc' => ['id' => SORT_DESC],
 ],
 'user_name' => [
 'asc' => ['ecs_users.user_name' => SORT_ASC],
 'desc' => ['ecs_users.user_name' => SORT_DESC],
 ],
 'add_time' => [
 'asc' => ['add_time' => SORT_ASC],
 'desc' => ['add_time' => SORT_DESC],
 ],
 ],
 ]);

二、使用Yii2.0自带分页功能并加入排序

// 处理分页
 $queryClone = clone $query;
 $totalCount = $queryClone->count();
 $pages = new Pagination(['defaultPageSize'=>$rows,'totalCount'=>$totalCount,'pageSizeLimit'=>false]);
 $query = $query->offset($offset)
 ->limit($pages->limit)
 ->orderBy($sortObject->orders)
 ->asArray()
 ->all();

三、修改Yii2.0排序底层代码

底层对应源码:vendor/yiisoft/yii2.0/data/Sort.php

1.为Sort类增加一个属性:public $sort;

2.在源码大约249行加入以下代码:(实现post获取分页参数)

 // get请求获取数组为空,则调用自定义属性sort。用于满足post获取后处理自定义参数
 if(!isset($params[$this->sortParam])){
 $params[$this->sortParam] = $this->sort;
 }

3.在控制器中接收分页参数,如下:

$sort = $_POST['sort'] ? strval($_POST['sort']) : 'id';
$sort = $_POST['order'] == 'asc' ? $sort : '-'.$sort;

注意:Yii2.0中id代表按照id正序排序,-id代表按照id逆序排序。这也是上面语句2为什么要那么处理的原因。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

yii2.0表格如何排序

yii2.0表格如何排序:在Yii2.0项目的实际开发中,经常会遇到使用Yii2.0自带的排序功能。展示多条数据时,通常需要对数据按照用户指定的列进行排序。 Yii 使用 yii\data\Sort 对象来代表排序方案的有关信息。 特别地:1、attributes 指定 属性,数据按照其排序。 一个属性可以就
推荐度:
标签: 如何 排序 排列
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top