我有一个名为" Lesson"它具有->hasMany()
关系,代表本课程的日期。
要检索具有特定时间跨度内的日期的每节课,我使用whereHas
:
$list = Lesson::whereHas('dates', function ($query) use ($start, $end) {
$query->where('date','>=', $start->format('Y-m-d'))
->where('date','<=', $end->format('Y-m-d'));
})->get()
这可以按预期工作,但我现在想要通过最小的&#39;对$list
进行排序。与课程相关的日期。
最好我希望使用Eloquent模型,因为模型中有一些需要的方法。但是,如果它不可能,那么平原就是不可能的。也可以使用sql语句。
答案 0 :(得分:0)
您可以使用Laravel collections的可用方法。此代码应该这样做。
$sortedLessons = $lessons->sortBy(function ($lesson) {
$dates = $lesson->dates;
$minDate = $dates->sortBy('date');
return $minDate;
});
我假设您的日期模型中有一个字段日期。