我有一系列活动。
这些事件有状态更新。
我每页分页10次。
加载页面时,状态更新按created_at desc
排序。
我也有升序或降序的订单链接 通过在URL中传递?sort = asc或?sort = desc。
$sort = $request->has('sort') ? $request->query('sort') : 'desc';
if($sort == 'asc') {
$statuses = $event->statuses()->oldest()->paginate(10);
} else {
$statuses = $event->statuses()->latest()->paginate(10);
}
事件结束后,标记为已完成。
然后,事件按created_at desc
排序。
所以它从头开始读取,如下:
if($sort == 'asc' || $event->completed) {
$statuses = $event->statuses()->oldest()->paginate(10);
} else {
$statuses = $event->statuses()->latest()->paginate(10);
}
但是,如果您尝试按状态created_at DESC
对已完成的事件进行排序,则会看到该事件已完成并且已由ASC下达订单。
if($sort == 'asc' || $event->completed) {
// If you go to ?sort=desc and the event has already been completed
// This code will be executed, which I don't want.
$statuses = $event->statuses()->oldest()->paginate(10);
} else {
$statuses = $event->statuses()->latest()->paginate(10);
}
如何调整它以便您可以按状态DESC对已完成的事件进行排序?