我为两张桌子创建了模型.现在我想执行查询并根据created_at合并结果.
我的疑问是:
$first = RequestF::where('userId','=',$userId)->get();
$second = RequestS::where('userId','=',$userId)->get();
我可以使用以下方法合并:
foreach($first as $f) {
$second->add($f);
}
但这只是在$second结束时添加$first-objects,而我无法通过基于created_at的顺序获取它们.
如何合并这两个查询并同时订购?
谢谢.
更新
在@MargusPala建议之后,这是我在$second-> toArray()之后的结果,但奇怪的是一个对象没有按顺序排列!!对象编号10:
{
"status" : "Success",
"data" : {
"showcases" : {
"10" : {
"userName" : "mojtaba_talebii",
"created_at" : "2015-04-22 10:51:25",
"type" : "F"
},
"2" : {
"userName" : "mojtaba_talebii",
"created_at" : "2015-04-23 10:14:32",
"type" : "L"
},
"3" : {
"userName" : "mojtaba_talebii",
"created_at" : "2015-04-23 10:15:00",
"type" : "L"
},
"11" : {
"userName" : "mojtaba_talebii",
"created_at" : "2015-04-27 09:54:56",
"type" : "F"
},
"4" : {
"userName" : "mojtaba_talebii",
"created_at" : "2015-04-23 11:22:09",
"type" : "L"
},
"5" : {
"userName" : "mojtaba_talebii",
"created_at" : "2015-04-26 10:42:38",
"type" : "L"
},
"6" : {
"userName" : "mojtaba_talebii",
"created_at" : "2015-04-27 09:59:03",
"type" : "L"
},
"7" : {
"userName" : "mojtaba_talebii",
"created_at" : "2015-04-27 09:59:23",
"type" : "L"
},
"0" : {
"userName" : "mojtaba_talebii",
"created_at" : "2015-04-22 11:26:25",
"type" : "L"
},
"8" : {
"userName" : "mojtaba_talebii",
"created_at" : "2015-04-27 10:05:19",
"type" : "L"
},
"1" : {
"userName" : "mojtaba_talebii",
"created_at" : "2015-04-23 10:13:53",
"type" : "L"
},
"9" : {
"userName" : "mojtaba_talebii",
"created_at" : "2015-04-27 10:05:33",
"type" : "L"
}
}
},
"message" : "Here is results"
}
这很奇怪,另外,我怎样才能获得结果屁股JSON数组,而不是JSON对象.
解决方法:
Laravel具有sortBy()函数,允许您对集合进行排序.像这样使用它
$second = $second->sortBy(function($s)
{
return $s->created_at;
});