【问题标题】:Laravel, sort model by latest created child relationLaravel,按最新创建的子关系排序模型
【发布时间】:2021-10-02 09:42:50
【问题描述】:

我有两个模型 - Ticket 和 Answer,Answer 是ticket 模型的子(属于)。目标是按日期按最新答案对工单进行排序,因此最后带有最近答案的工单应显示在前端列表的顶部。

如何实现?

【问题讨论】:

标签: laravel sorting eloquent model


【解决方案1】:

有两种解决方案:

第一个

使用子查询连接。 Laravel 文档中有非常相似的案例,因此您可以复制 - 粘贴 - 编辑它。 https://laravel.com/docs/8.x/queries#subquery-joins

第二次

您可以更新 Ticket 时间戳并再次按其排序,类似于文档:https://laravel.com/docs/8.x/eloquent-relationships#touching-parent-timestamps

【讨论】:

  • 更新父时间戳对于我的任务来说是非常准确的解决方案,谢谢!
  • 第一种情况更防弹,因为它完全符合您的要求。第二种情况在大数据集上的性能要低得多,但更容易出错。例如,如果您有过去的记录,它将不适用于过去的记录,并且使用原始查询编辑/插入某些内容不会更新时间戳
猜你喜欢
  • 2018-06-06
  • 2021-01-20
  • 2018-01-08
  • 1970-01-01
  • 2019-05-14
  • 1970-01-01
  • 1970-01-01
  • 2020-01-08
  • 1970-01-01
相关资源
最近更新 更多