Max*_*ell 6 php mysql laravel eloquent
在我的数据库中,我有以下表格:
我正在尝试按数据透视表 course_student 中的created_at 值递减检索学生已注册的所有课程
这就是我定义模型的方式:
学生模型:
public function students () {
return $this->belongsToMany(Student::class, 'course_student', 'course_id', 'student_id')->withTimestamps();
}
Run Code Online (Sandbox Code Playgroud)
课程模型:
public function courses () {
return $this->belongsToMany(Course::class, 'course_student', 'student_id', 'course_id')->withTimestamps();
}
Run Code Online (Sandbox Code Playgroud)
这是我在控制器中尝试过的,但它不起作用。
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'));
}
Run Code Online (Sandbox Code Playgroud)
知道我怎样才能做到这一点吗?
从学生那里获取课程:
$student = Student::where('user_id', auth()->id())->first();
$courses = $student->courses()->orderByDesc('course_student.created_at')->get();
Run Code Online (Sandbox Code Playgroud)