我有两个相关的模型'Yards'和'Inspections'。一个场地可以有多个检查。
我希望能够根据检查属性“reinspect_at”对场地列表进行排序。我有一个模型方法,根据检查日期返回场地的最新检查。
我尝试了以下操作:
但是这并没有按照reinspect_at日期对院子进行排序,它只是为每个院子排序最新的检查。
我希望能够根据检查属性“reinspect_at”对场地列表进行排序。我有一个模型方法,根据检查日期返回场地的最新检查。
我尝试了以下操作:
$yards = Yard::orderBy('quarantined', 'DESC')
->with(['latestInspection' => function($query){
$query->orderBy('reinspect_at', 'asc');
}])
->get();
但是这并没有按照reinspect_at日期对院子进行排序,它只是为每个院子排序最新的检查。
我想要始终返回院子的最新检查,但需要能够根据每个院子最新检查的reinspect_at日期重新排序院子列表。谢谢
下面是院子列表显示的截图。如您所见,我希望能够按照检查到期日期对结果进行排序。
** 更新 ** 看起来我想要的可以在前端模板中使用:
@foreach( $yards->sortBy('latestInspection.reinspect_at') as $yard )
最好能够从控制器中实现这一点,这样我就可以有其他按顺序排序的选项。