Сортировать по сводной таблице созданной в Laravel - PullRequest
0 голосов
/ 09 ноября 2018

В моей базе данных у меня есть следующие таблицы:

  1. курсы (идентификатор, имя, create_at, updated_at)
  2. студенты (id, name, creation_at, updated_at)
  3. course_student (id, course_id, student_id, creation_at, updated_at)

Я пытаюсь получить всеКурсы, в которых студент зачислен в порядке убывания по значению созданного в сводной таблице.Модель курса:

public function courses () {
    return $this->belongsToMany(Course::class, 'course_student', 'student_id', 'course_id')->withTimestamps();
}

И это то, что я пробовал в своем контроллере, но он не работает.

public function enrolled() {
    $courses = Course::whereHas('students', function($query) {
        $query->where('user_id', auth()->id())
            ->orderBy('course_student.created_at','desc');
        })->get();

    return view('courses.enrolled', compact('courses'));
}

Есть идеи, как мне это сделать?

1 Ответ

0 голосов
/ 09 ноября 2018

Получить курсы от студента:

$student = Student::where('user_id', auth()->id())->first();
$courses = $student->courses()->orderByDesc('course_student.created_at')->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...