Fly*_*Moe 6 php laravel eloquent
尝试先按最新日期订购我的桌子,然后按状态订购。状态可以是(新建、审核中、拒绝、已关闭),状态是数据库中的枚举字段。
我尝试了几件事但没有成功。这是我用这段代码得到的最接近的结果。我是 Laravel 新手,所以不知道该怎么做。
$inquiries = Inquiry::all()->sortByDesc('created_at')->sortByDesc('Status')->values();
Run Code Online (Sandbox Code Playgroud)
这会产生这样的结果:
-------------------------------------------------- ------------ | 名称 | 创建于 | 状态 | -------------------------------------------------- ------------ | 理查德 | 2020 年 5 月 2 日 | 新 | -------------------------------------------------- ------------ | 詹姆斯 | 2020 年 5 月 2 日 | 新 | -------------------------------------------------- ------------ | 克里斯汀 | 2020 年 4 月 16 日 | 拒绝 | -------------------------------------------------- ------------ | 查尔斯| 2020/04/14 | 新 | -------------------------------------------------- ------------ | 朱迪| 2020 年 3 月 13 日 | 回顾中 | -------------------------------------------------- ------------ | 保罗| 2020 年 1 月 12 日 | 新 | -------------------------------------------------- ------------
我希望它看起来像这样,按日期排序,首先是最新的日期,然后是状态=“新”。我希望它看起来像这样:
-------------------------------------------------- ------------ | 名称 | 创建于 | 状态 | -------------------------------------------------- ------------ | 理查德 | 2020 年 5 月 2 日 | 新 | -------------------------------------------------- ------------ | 詹姆斯 | 2020 年 5 月 2 日 | 新 | -------------------------------------------------- ------------ | 查尔斯| 2020/04/14 | 新 | -------------------------------------------------- ------------ | 保罗| 2020 年 1 月 12 日 | 新 | -------------------------------------------------- ------------ | 克里斯汀 | 2020 年 4 月 16 日 | 拒绝 | -------------------------------------------------- ------------ | 朱迪| 2020 年 3 月 13 日 | 回顾中 | -------------------------------------------------- ------------
Ban*_*mar 11
首先,让我们看看是否需要使用orderBy()or sortBy()。
排序依据() /排序依据描述()
方法sortBy()和sortByDesc()用于从数据库获取结果后对数据进行排序。
orderBy()
方法与SQLorderBy语句相同。这将对数据库记录进行排序,然后输出结果。 ORDER BY
回答
这里你需要使用orderBy()而不是sortByDesc(). 这几乎是一个重复的问题,在这里找到原始问题。
// Make sure column names are correct
$inquiries = Inquiry::orderBy('status', 'ASC') // or DESC
->orderBy('created_at', 'DESC')
->get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32543 次 |
| 最近记录: |