【发布时间】:2016-05-17 11:27:55
【问题描述】:
我正在尝试对包含父行和子行的表进行排序。排序应始终基于父行执行,但子行应始终紧跟在父行之后。表格数据格式为
[
{name: 'xxx', group: 'A', type: 'parent'},
{name: 'yyy', group: 'B', type: 'parent'},
{name: 'zzz', group: 'A', type: 'child'},
{name: 'qqq', group: 'A', type: 'child'}
]
所以,按名称排序,正确的顺序是 xxx,qqq,zzz,yyy。
数据来自 Laravel/Eloquent ajax 查询并显示在数据表中,因此无论是客户端还是服务器端都可以对其进行排序。
与多排序无关(下面的评论)
【问题讨论】:
-
请添加您目前尝试过的代码。
-
Henders:这不是 array_multisort 场景。 array_multisort 按多维排序。同样可以通过 mysql order by 或默认数据表行为来实现。我需要一个简单的一维排序,除了某些行需要聚集在一起(即跟随父级的组的子级),而不管逻辑排序顺序如何。按组排序,类型将导致正确的行为,但前提是按组排序是所需的结果。按任何其他列排序是这里的问题。
-
Ruben:到目前为止,我还没有想出任何合理的工作代码。 PHP、Laravel、DataTables 和连接适配器 (Yajra\Datatables) 都有带有回调的用户排序选项,但我需要引用比较范围之外的项目(在我的示例中按名称比较项目 2 和 3 是不可能的而不取名称考虑到第 1 项)。
标签: php laravel sorting datatables eloquent