按多列对 Eloquent 集合进行排序的语法是什么?

2024-02-26

我知道在使用查询生成器时,可以使用以下方法按多列排序

...orderBy('column1')->orderBy('column2')

但现在我正在处理一个收藏 http://laravel.com/docs/eloquent#collections目的。收藏有sortBy方法,但我无法弄清楚如何使其适用于多列。直觉上,我最初尝试使用与orderBy.

sortBy('column1')->sortBy('column2)

但这显然只是按顺序应用排序,最终按第 2 列排序,而忽略第 1 列。我试过

sortBy('column1', 'column2')

但这会引发错误“asort() 期望参数 2 很长,给定字符串”。使用

sortBy('column1, column2')

不会抛出错误,但排序似乎相当随机,所以我真的不知道它实际上是做什么的。我在看sortBy 方法的代码 http://laravel.com/api/source-class-Illuminate.Support.Collection.html#206-237,但不幸的是我很难理解它是如何工作的。


sortBy()采用闭包,允许您提供用于排序比较的单个值,但您可以通过将多个属性连接在一起使其成为复合值

$posts = $posts->sortBy(function($post) {
    return sprintf('%-12s%s', $post->column1, $post->column2);
});

如果您需要对多列进行排序,则可能需要用空格填充它们以确保“ABC”和“DEF”位于“AB”和“DEF”之后,因此为每列的冲刺右侧填充直到列的长度(至少除了最后一列之外的所有列)

请注意,如果您可以在查询中使用 orderBy,那么通常会更高效,这样集合就可以在从数据库检索时进行排序

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按多列对 Eloquent 集合进行排序的语法是什么? 的相关文章

  • 将 docker-compose.yml 中的包安装到 docker 容器中

    我是 docker 和 docker compose 的初学者 我需要你的帮助 我正在使用 docker compose 制作 PHP NGINX PostgresQL symfony 开发环境 这里是 web image nginx 1
  • 在 Elasticsearch php API 中使用多种类型或索引

    我想使用查询多种类型和索引Elasticsearch PHP API 但我不知道怎么办 我应该将类型和索引的数组传递给 params params index index array of indices params type types
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att
  • SimpleXML 返回空数组

    我正在尝试使用 Google Maps API 和 PHP SimpleXML 获取城市的纬度和经度 我尝试这样做 xml simplexml load file http maps googleapis com maps api geoc
  • 突出显示单词并提取其附近文本的函数

    我有一个文本例如 Etiam porta semmalesuada magna mollis euismod 整数取数 ante venenatis dapibus posuere velit aliquet 埃蒂亚姆 门塔 塞姆 male
  • 如何从命令行执行 PHP 代码?

    我想执行单个 PHP 语句 例如if function exists my func echo function exists 直接使用命令行 无需使用单独的 PHP 文件 这怎么可能 如果您要在命令行中执行 PHP 我建议您安装phpsh
  • 加载视图 - codeigniter 错误

    我是 codeigniter 的新手 我正在做一个菜单 所以我将所有链接不放在同一个主文件中 以免一直重复 我的代码是 在main php中 main agregar gt Agregar span a href Modificar a s
  • 在 Yii2 中从数据库中多态查找模型

    我在数据库 mysql 中有一张表 但该表存储了几种略有不同类型的行 类型取决于此表的type柱子 我有一个表的抽象 ActiveRecord 类和几个后代子类 它们为不同类型的同一表的行实现略有不同的逻辑 现在我正在为所有类型的行实现更新
  • 选择 mysql 枚举的 php 函数

    因此 我创建了一个函数 它将从数据库中的枚举字段中提取值
  • PHP SimpleXML,如何设置属性?

    如果你有类似的东西
  • 单击时获取元素的 id(php、jquery、ajax、javascript)

    抱歉 这是我的第一个项目 我学到了很多东西 因此 如果有人可以帮助我 我将不胜感激 我的项目中有这个侧边栏 其中包含 rss 链接 我必须使用 ajax 因此每次用户单击任何 rss 链接时 提要都会出现在屏幕上 这是我的侧边栏代码 div
  • 无法将包含数据的大型 CSV 文件转换为 mysql 数据库[重复]

    这个问题在这里已经有答案了 如何将大型文本文件转换为mysql数据库 文件大小3GB 1100万行 文件中的每一行都是这样的 1303179444 20 5811 Ahmed Al Emam male ahmed e alemam ahme
  • 创建日期 - Laravel 中的 Carbon

    我开始阅读有关Carbon并且似乎不知道如何创建一个carbon date 在文档中说你可以 Carbon createFromDate year month day tz Carbon createFromTime hour minute
  • PHP json_encode 反斜杠和数组名称的问题

    我正在将一些 postgresql 数据转换为 PHP json encode 但我遇到了一些问题 json encode 将 BackSlash 添加到我的数据中的所有斜杠中 在描述中出现段落标记的结束 我认为是因为反斜杠问题 我不希望我
  • 将字符串拆分为字母数组 - 双字符字母 PHP

    我需要将一个字符串拆分为一个字母数组 问题是在我的语言 克罗地亚语 中也有双字符字母 例如 lj nj d 所以字符串如ljubi icajecvijet应该分成一个数组 如下所示 Array 0 gt lj 1 gt u 2 gt b 3
  • PHP中的“@/path/to/a/file”是什么意思?

    我偶然发现以下代码示例 image file path code tmhOAuth gt request POST https upload twitter com 1 statuses update with media json arr
  • 在php word中将两个徽标对齐在同一行

    我使用 php word 添加了两个徽标 但两个徽标不在同一行 我希望两个徽标位于同一行 如下所示 我的错误在哪里 if file exists logo table gt addRow table gt addCell 20000 arr
  • PHP runkit_function_rename 不起作用?

    这段代码不起作用 为什么不 我真正想要的是这个 我正在使用一个具有功能的系统 当我在本地主机上时 我希望该函数做一些不同的事情 我想用自己的东西覆盖该函数 也欢迎所有替代方案 您是否安装了 PECL 扩展 http www php net
  • 限制传出 PHP+curl 请求的速率

    有没有办法限制 有延迟 向外部服务器发出 PHP curl 请求的速率 以便每秒只有 n 个请求 PHP 在 Fastcgi 模式下使用 因此无法使用睡眠 是的 有curl 多重处理程序 您可以使用 OOP 方式以 OOP 方式完成此操作这
  • 删除 cookie php

    我正在尝试创建一个带有登录系统的平台 并将用户名和密码存储在cookie中 以使用户即使关闭浏览器然后再次输入也能保持登录状态 我设法保存了cookie 但我不知道如何制作注销按钮 这是代码 function logout body app

随机推荐