【发布时间】:2016-02-24 21:21:55
【问题描述】:
我有相当复杂的 laravel eloquent 集合,需要按 projectid、日期、用户名排序。
我一直在搜索谷歌,但没有人询问或写过这种复杂的排序。
如果我只对 sortBy 函数使用 desc 或 asc 顺序。它可以工作,但如果我尝试同时使用 desc/asc 它会混淆..
我该如何解决这个问题???
集合结构
collection {
array (size=148)
0 =>
attribute:
id:100,
date:"2015-02-03"
relations:
0 project(belongstomany relationship)
projectid: 1
1 user(belongstomany relationship)
username:"test"
}
这应该是这样排序的
project id(desc) date(desc) name(asc)
9 2015-02-31 test1
9 2015-02-30 test2
8 2015-02-30 test2
7 2015-02-29 test3
6 2015-02-28 test4
5 2015-02-27 test5
【问题讨论】:
-
你想在这里做什么?您是在尝试创建新集合还是对现有集合进行排序?
-
基本上,我检索了数据并通过关系进行了雄辩的收集。我正在整理现有的。
-
然后,如果您根据多个标准对它们进行排序,结果将混合在一起。因为你不能保证最大 id 也有最大日期,也有最大名称
-
那么这个问题没有解决办法??
-
愚蠢的解决方案:打破集合并将属性放入三个不同的数组中。对它们进行排序。创建一个新集合。
标签: php sorting laravel laravel-collection