【问题标题】:Send edited data to bottom of datatable将编辑后的数据发送到数据表底部
【发布时间】:2020-11-28 06:10:17
【问题描述】:

如何将最近编辑的数据发送到数据表底部?我目前在 Laravel 中使用orderBy('updated_by', 'asc') 作为 orderBy,但我想将另一个我尚未编辑的数据作为created_atdesc 进行排序。

有什么建议可以实现吗?

$model = Assigned::select(
    'maintenance_assigned.id', 'maintenance_assigned.member_id', 'maintenance_assigned.created_at',
    'member.username', 'member.full_name', 'member.phone', 'member.call_status',
    'user.nik AS assigned_to_nik', 'user.name AS assigned_to_name',
    'panel.name AS panel_name'
    )
    ->leftJoin('maintenance_members AS member', 'member.id', 'maintenance_assigned.member_id')
    ->leftJoin('users AS user', 'user.id', 'member.assigned_to')
    ->leftJoin('maintenance_panels AS panel', 'panel.id', 'member.panel_id')
    ->orderBy('maintenance_assigned.updated_at', 'asc')->get();

【问题讨论】:

    标签: php mysql laravel datatable mariadb


    【解决方案1】:

    要按不同的列有条件地排序,您需要使用表达式。这可以使用orderByRaw()orderBy()Illuminate\Database\Query\Expression 对象来完成。表达式可能是 IF(updated_at = created_at, NULL, updated_at) 或类似的。

    另一种选择是在更新时填充另一个字段,例如updated = 1,然后按该列排序。请记住,更复杂的排序会影响索引的使用和性能。如果表很大,您应该解释查询或使用真实数据集对其进行分析。

    【讨论】:

      猜你喜欢
      • 2021-12-19
      • 2011-03-22
      • 2018-06-14
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多