使用Eloquent从具有外键的单个表中获取数据到另外两个表-Laravel

时间:2018-08-01 00:26:34

标签: php mysql laravel eloquent

请给我三个模型:讲师,水平,课程。

讲师桌

| ID | Name_of_lecturer  
+----+----------------  
| 1 .| Prof John Doe  
+----+----------------  
| 2 .| Prof Jane Doe

级别表

| ID | Name 
+----+----------------  
| 1 .| Level 1  
+----+----------------  
| 2 .| Level 2

课程表

| ID | level_id | lecturer_id | course_info
+----+----------+-------------+----------------------------------  
| 1  | 2        | 3             a topic in level 2 by lecturer 3
+----+----------+-------------+----------------------------------
| 2  | 5        | 6           | a topic in level 5 by lecturer 6

对于使用Eloquent从每门课程的“层次模型”中获取讲师详细信息的方式,我确实感到困惑。任何帮助将不胜感激。预先感谢。

2 个答案:

答案 0 :(得分:0)

由于一位讲师可以开设许多课程,因此您正在寻找一对多的关系。但是,由于您是从课程(许多)转到讲师(一个)的,所以您需要这样做:

在您的Course类中,添加以下功能:

public function lecturer(){
    return $this->belongsTo(Lecturer::class);
}

这将使您可以根据需要使用$course->lecturer()$course->lecturer->Name_of_lecturer

以下是Laravel文档的相关链接:Eloquent: Relationships - One to Many (Inverse)

答案 1 :(得分:-1)

如果您不太熟悉laravel通过Models的口才,则可以将查询与JOIN(内部联接或所需的任何联接)一起使用。 例如:

$lecturersDetails = DB::table('course')->join('lecturers','id','=','lecturer_id')->get();