yii2.0表格如何排序

yii2.0表格如何排序

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

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

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

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

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

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

(推荐学习:yii框架)

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

一、设置排序规则

飞书多维表格 飞书多维表格

表格形态的AI工作流搭建工具,支持批量化的AI创作与分析任务,接入DeepSeek R1满血版

飞书多维表格 26 查看详情 飞书多维表格

 注意引入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为什么要那么处理的原因。

以上就是yii2.0表格如何排序的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/495764.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 17:50:33
下一篇 2025年11月8日 17:55:38

相关推荐

  • 如何在 Excel 中按字母顺序排序数据

    1、Excel中按字母顺序整理文本数据可通过内置排序功能实现。选中单元格后使用“开始”选项卡中的“升序”按钮可快速对单列排序;2、对于多列关联数据,应在“数据”选项卡中打开排序对话框,设置主要关键字并选择“扩展选定区域”,确保整行同步移动;3、若需倒序排列,可点击“降序(Z-A)”按钮,系统提示时选…

    2025年12月3日 软件教程
    000
  • SQL排序规则设置 SQL ORDER BY使用指南

    sql排序规则冲突可通过显式指定排序规则、更改数据库或列的默认排序规则、使用临时表或转换数据类型解决。1. 显式指定排序规则:在查询中使用collate子句,如table2.column2 collate database_default,避免修改原始设置但需逐处添加;2. 更改默认排序规则:用al…

    2025年12月3日 数据库
    000
  • SQLSERVER的排序问题结果不是想要的

    同一个查询的结果集为什麽有时候是按他想要的顺序%ignore_a_1%,有时候又不是,接下来将为你详细解答,感兴趣的你可以参考下哈,希望对你有所帮助 在论坛里经常有人问这样的问题: 同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL200…

    数据库 2025年12月2日
    000
  • mysql中ORDER BY排序如何实现_mysql排序语句教程

    ORDER BY用于对查询结果排序,默认升序(ASC),可指定降序(DESC);支持单字段、多字段排序,优先级从左到右;可与WHERE、LIMIT结合使用,执行顺序为FROM→WHERE→ORDER BY→LIMIT;NULL值在ASC中排前,DESC中排后,可通过CASE调整位置;建议建立索引优化…

    2025年12月2日 数据库
    000
  • MySQL关于字符串中数字排序的问题分析_MySQL

    本文实例讲述了mysql关于字符串中数字排序的问题。分享给大家供大家参考,具体如下: MySQL字符串相信大家都不陌生,在MySQL字符串排序时经常会遇到一些问题,比如下面要介绍的这个 今天解决了一个关于MySQL字符串排序的很奇怪的问题,在数据里面定义的是varchar类型,实际存放的是Int类型…

    2025年11月28日
    000
  • SQL的聚合函数与排序

    这次给大家带来SQL的聚合函数与排序,使用SQL聚合函数与排序的注意事项有哪些,下面就是实战案例,一起来看一下。 count 函数 语法: Select count(*)|count(列名) from table_name [where where_defination];Select count(…

    2025年11月28日 数据库
    000
  • mongodb 排序 Unable to determine the serialization informatio

    好久没用mongodb了…最近又开始用起来了. 遇到情景: 好久没用mongodb了…最近又开始用起来了. 遇到情景: Kerqu.Ai 专为电商设计的一站式AI创作平台 202 查看详情    ,

    2025年11月27日
    000
  • HTML、CSS和jQuery:实现图像拖拽排序的技巧

    HTML、CSS和jQuery:实现图像拖拽排序的技巧 在现代网页设计中,图像拖拽排序已经成为一个常见且受欢迎的功能。通过拖拽图像,用户可以自由调整图像的排列顺序,从而提升用户体验和交互性。本文将介绍如何使用HTML、CSS和jQuery来实现图像拖拽排序,同时提供具体的代码示例。 一、HTML结构…

    2025年11月27日 web前端
    000
  • LLM | 偏好学习算法并不学习偏好排序

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 图片 一、结论写在前面 偏好学习算法(preference learning algorithms)如rlhf和dpo)常用于引导大型语言模型(llms)生成更符合人类偏好的内容。但是,文献对其…

    2025年11月26日 科技
    000
  • 如何理解MySQL的分页和排序技术?

    如何理解MySQL的%ign%ignore_a_1%re_a_1%和排序技术? 概述:MySQL是一个广泛使用的关系型数据库管理系统,它提供了丰富的功能和技术,其中包括了分页和排序技术。分页技术可以用来显示大量数据的部分内容,而排序技术则可以对数据按照特定规则进行排序。在实际应用中,我们经常需要使用…

    2025年11月23日
    000
  • yii2.0和laravel区别有哪些

    yii2.0和laravel区别有:1、在前后端完全分离的趋势下,yii2前后端的耦合比laravel要重一些;2、yii不会为了某种设计模式而对代码进行过度的设计,而laravel有点设计过度;3、laravel社区比较活跃,资源丰富。 yii2.0和laravel区别 yii2是美籍华人薛强开发…

    2025年11月17日
    000
  • yii2.0怎么设置默认控制器

    设置默认控制器有两种方法: (推荐教程:yii) 1、打开/vendor/yiisoft/yii2/web/Application.php public $defaultRoute = ‘site’; 把这个默认改了,但是修改框架源码不是很好,最好是在配置文件中扩展。 2、打开frontend/co…

    2025年11月16日
    000
  • Java中Collections.sort方法的原理

    Java中的 %ignore_pre_1% 方法,其核心秘密在于它采用了一种名为TimSort的混合排序算法。这种算法是归并排序和插入排序的巧妙结合体,旨在提供高效且稳定的排序,尤其擅长处理现实世界中常见的部分有序数据。在我看来,它就是Java在性能和通用性之间找到的一个绝佳平衡点。 TimSort…

    2025年11月14日
    000
  • sql中如何排序结果集 结果集排序的两种经典方法

    如何使用order by子句进行排序?1. 使用order by指定一个或多个列对结果集排序,默认升序(asc),也可显式指定降序(desc);2. 多列排序时,列顺序决定排序优先级,如先按部门升序再按工资降序排列。窗口函数如何实现排序?1. 使用rank()、dense_rank()、row_nu…

    2025年11月10日 数据库
    000
  • python中pandas排序的两种形式

    按列值排序使用sort_values()方法,可指定单列或多列及升降序;2. 按索引排序使用sort_index()方法,支持行或列索引排序;3. 两种方法均返回新对象,原数据不变,除非设置inplace=True。 在Python中使用pandas进行数据排序,主要有两种常用方式:按列值排序和按索…

    2025年11月10日 后端开发
    000
  • SQL学习笔记四 聚合函数、排序方法

    SQL学习笔记四 聚合函数、排序方法,在数据调用中非常实用。 聚合函数 count,max,min,avg,sum… select count (*) from T_Employee select Max(FSalary) from T_Employee 排序 ASC升序 DESC降序 …

    数据库 2025年11月7日
    000
  • mysql 优化(5)索引与排序

    排序可能发生2种情况: 1: 对于覆盖索引,直接在索引上查询时,就是有顺序的,using index , 也可能是在查询时候沿着索引字段排序查询 。 此时排序代价低 2: 先取出数据,形成临时表做filesort(文件排序,但文件可能在磁盘上,也可能在内存中) 我们的争取目标—&#821…

    2025年11月7日
    000
  • MySQL 排序的详细介绍

    MySQL排序 我们知道从mysql表中使用sql select语句来读取数据。 如果我们需要对读取的数据进行排序,我们就可以使用MySQL的ORDER BY子句来设定你想按哪个字段哪中方式来进行排序,再返回搜索结果。 语法 以下是SQL SELECT语句使用ORDER BY子句将查询数据排序后再返…

    2025年11月6日
    000
  • 详解MySQL中Order By多字段排序规则

    想了解一下mysql order by排序是以什么规则进行的? 本文主要介绍了mysql中order by多字段排序规则代码示例,小编觉得挺不错的,这里给大家分享下,需要的朋友可以参考,希望能帮助到大家。 MySql order by 单字段 建一测试表如下: CREATE TABLE `a` ( …

    2025年11月6日
    000
  • yii2.0文件如何在php命令行运行

    在yii根目录下面有个“yii”文件,这个文件就是入口。然后“commands”目录下会默认有个“hellocontroller.php”控制器文件,这个是一个demo。打开这个控制器文件,源码如下(删掉了部分注释): <?phpnamespace appcommands;use yiicon…

    2025年11月6日 PHP框架
    000

发表回复

登录后才能评论
关注微信