我正在try 组合和排序来自几个db查询的结果.
$events = collect();
$downedEvents = EventDowned::where('mission', $missionId)
->orderBy('mission_time', 'asc')
->get();
$events->push($downedEvents);
$getInOutEvents = EventGetInOut::where('mission', $missionId)
->orderBy('mission_time', 'asc')
->get();
$events->push($getInOutEvents);
$missileEvents = EventMissile::where('mission', $missionId)
->orderBy('mission_time', 'asc')
->get();
$events->push($missileEvents);
$flattenedEvents = $events->flatten();
$sortedEvents = $flattenedEvents->sortBy('mission_time');
return $sortedEvents->all();
结果如下:
正如您所见,它正确地组合了结果,但它们仍保持原始查询顺序,没有排序.
我也试过了
$sortedEvents = $flattenedEvents->sortBy(function($event) {
return (int) $event->mission_time;
});