簡體   English   中英

對關系進行雄辯的模型排序(一個>很多)

[英]Sort Eloquent models on relationship (one>many)

我有一個名為“ 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()

這可以按預期工作,但是我現在想按與課程相關的“最小”日期對$list進行排序。

最好是我希望使用Eloquent模型,因為模型中需要一些方法。 但是,如果不可能,那么也可以使用“普通” sql語句。

您可以使用Laravel集合的可用方法。此代碼應做到這一點。

$sortedLessons = $lessons->sortBy(function ($lesson) {
    $dates = $lesson->dates;
    $minDate = $dates->sortBy('date');
    return $minDate;
});

我假設您在日期模型中有一個字段日期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM