Laravel,按最新创建的子关系排序模型
Posted
技术标签:
【中文标题】Laravel,按最新创建的子关系排序模型【英文标题】:Laravel, sort model by latest created child relation 【发布时间】:2021-10-02 09:42:50 【问题描述】:我有两个模型 - Ticket 和 Answer,Answer 是ticket 模型的子(属于)。目标是按日期按最新答案对工单进行排序,因此最后带有最近答案的工单应显示在前端列表的顶部。
如何实现?
【问题讨论】:
我想这就是你要找的***.com/questions/25700529/… 使用join和order by。 【参考方案1】:有两种解决方案:
第一个
使用子查询连接。 Laravel 文档中有非常相似的案例,因此您可以复制 - 粘贴 - 编辑它。 https://laravel.com/docs/8.x/queries#subquery-joins
第二次
您可以更新 Ticket
时间戳并再次按其排序,类似于文档:https://laravel.com/docs/8.x/eloquent-relationships#touching-parent-timestamps
【讨论】:
更新父时间戳对于我的任务来说是非常准确的解决方案,谢谢! 第一种情况更防弹,因为它完全符合您的要求。第二种情况在大数据集上的性能要低得多,但更容易出错。例如,如果您有过去的记录,它将不适用于过去的记录,并且使用原始查询编辑/插入某些内容不会更新时间戳以上是关于Laravel,按最新创建的子关系排序模型的主要内容,如果未能解决你的问题,请参考以下文章