Использование Eloquent для извлечения данных из одной таблицы с внешними ключами в две другие таблицы — laravel

пожалуйста, у меня есть три модели: преподаватели, уровни, курс.

стол лекторов

| 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. Любая помощь будет оценена. Заранее спасибо.

1

Решение

Поскольку у одного лектора может быть много курсов, вы смотрите на отношения один ко многим. Но так как вы идете от курса (многие) к лектору (один), вы ищете это:

В вашем Course Класс добавить следующую функцию:

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

Это позволит вам использовать $course->lecturer() или же $course->lecturer->Name_of_lecturer как вам нужно.

Вот соответствующая ссылка на Документы Laravel: Красноречивый: отношения — один ко многим (обратный)

0

Другие решения

Если вы не очень знакомы с красноречивым laravel через Модели, вы можете использовать запрос с JOIN (внутреннее соединение или все, что вам нужно).
Например:

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector