php - Laravel 6.0 Eloquent - 按日期和状态排序
问题描述
尝试首先按最新日期订购我的桌子,然后是状态。Status 可以是(New、In Review、Declined、Closed),Status 是数据库中的一个枚举字段。
我尝试了几件事都没有成功。这是我与此代码最接近的。我是 Laravel 的新手,所以不知道该怎么做。
$inquiries = Inquiry::all()->sortByDesc('created_at')->sortByDesc('Status')->values();
这产生了这个:
-------------------------------------------------- ------------ | 姓名 | 创建于 | 状态 | -------------------------------------------------- ------------ | 理查德 | 2020 年 5 月 2 日 | 新 | -------------------------------------------------- ------------ | 詹姆斯 | 2020 年 5 月 2 日 | 新 | -------------------------------------------------- ------------ | 克里斯汀 | 2020 年 4 月 16 日 | 拒绝 | -------------------------------------------------- ------------ | 查尔斯 | 2020 年 4 月 14 日 | 新 | -------------------------------------------------- ------------ | 朱迪 | 2020 年 3 月 13 日 | 回顾 | -------------------------------------------------- ------------ | 保罗 | 2020 年 1 月 12 日 | 新 | -------------------------------------------------- ------------
我希望它看起来像这样,它按日期排序,首先是最新日期,然后是状态 =“新”。我希望它看起来像这样:
-------------------------------------------------- ------------ | 姓名 | 创建于 | 状态 | -------------------------------------------------- ------------ | 理查德 | 2020 年 5 月 2 日 | 新 | -------------------------------------------------- ------------ | 詹姆斯 | 2020 年 5 月 2 日 | 新 | -------------------------------------------------- ------------ | 查尔斯 | 2020 年 4 月 14 日 | 新 | -------------------------------------------------- ------------ | 保罗 | 2020 年 1 月 12 日 | 新 | -------------------------------------------------- ------------ | 克里斯汀 | 2020 年 4 月 16 日 | 拒绝 | -------------------------------------------------- ------------ | 朱迪 | 2020 年 3 月 13 日 | 回顾 | -------------------------------------------------- ------------
解决方案
首先让我们看看您是否需要使用orderBy()
或sortByDesc()
。
sortBy() / sortByDesc()
从数据库中获取结果后对数据进行排序的方法sortBy()
和用途。sortByDesc()
orderBy()
方法orderBy
同SQL ORDER BY
语句。这将对数据库记录进行排序,然后输出结果。
回答
在这里你需要使用orderBy()
而不是sortByDesc()
. 这几乎是一个重复的问题,请在此处找到原始问题。
// Make sure column names are correct
$inquiries = Inquiry::orderBy('status', 'ASC')
->orderBy('created_at', 'DESC')
->get();
推荐阅读
- java - 从 GenerationType.TABLE 迁移到 GenerationType.SEQUENCE
- reactjs - 如何调度构造函数中的更改?
- c++ - 防止cin、cout、cerr被实例化
- azure-devops - Sprint 任务板中的故事点而不是努力
- angular - 生成动态组件的通用函数
- angular - 角度反应形式 - 在 FormGroup 中禁用材料设计按钮
- regex - 替换两个字符串powershell之间的文本
- flutter - Pass state variable reference to function
- python - Python3 & Tkinter : Editing a entry from a function
- sql-server - 设置日期参数的范围限制