php - 如何按声誉和创建日期对集合进行排序

标签 php laravel sorting

假设我想按声誉对用户列表进行排序:

  1. 拥有 5 个声誉的用户
  2. 拥有 3 个信誉的用户
  3. 信誉为 0 的用户(该用户在第 4 个用户之前注册)
  4. 信誉为 0 的用户

通过执行 $query->get()->sortByDesc('reputation'),我收到以下结果:

  1. 拥有 5 个声誉的用户
  2. 拥有 3 个信誉的用户
  3. 信誉为 0 的用户
  4. 信誉为 0 的用户(该用户在第 4 个用户之前注册)

如何对集合进行排序以接收类似于第一个示例的结果?换句话说,如果用户的信誉度为0,如何将排序方式更改为按降序排列的创建日期?

最佳答案

在查询中链接两个 orderBy() 方法:

->orderBy('created_at', 'desc')->orderBy('reputation', 'desc')->get();

关于php - 如何按声誉和创建日期对集合进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41553520/

相关文章:

bash - 在不排序的情况下删除变量上的重复项

c# - 使用 LINQ 在 OrderBy 中自定义排序逻辑

php - 试图在 sql 查询中获取非对象的属性

javascript - 无法通过单击 id 来提醒 id 按钮

php - MYSQL 连接同一张表中的多列

php - 无法在 Laravel/Eloquent 中插入默认条目

c++ - 数组中元素的自定义排序

javascript - 类型错误 : Cannot read eager loaded property of undefined

php - 为什么我的请求 POST swift 到 php,内容总是 PHP 的关键

laravel - Vuetify.js - IE11 不显示带有 babel-polyfill 的数据表