Laravel lumen получает данные из другого отношения - PullRequest
1 голос
/ 06 марта 2019

У меня 3 таблицы faculties, students, program_studies.Я использую Lumen 5.7

Вот таблицы:

таблица факультетов:

-----------------
|id|faculty_name|
-----------------
| 1| test       |
-----------------

таблица студентов:

----------------------------------
|id|student_name|program_study_id|
----------------------------------
| 1| student 1  |               1|
----------------------------------
| 2| student 2  |               1|
----------------------------------

таблица program_studies:

----------------------------------
|id|program_study_name|faculty_id|
----------------------------------
| 1| program study    |         1|
----------------------------------

Это модель:

Student.php

public function programStudy()
{
    return $this->belongsTo(ProgramStudy::class);
}

PorgramStudy.php

public function faculty()
{
    return $this->belongsTo(Faculty::class);
}

Faculty.php

nothing relation in faculty model

Как получить данные факультета с отношением в модели Стьюдента?

Сейчас я создаю такую ​​функцию в Student.php:

public function getFaculty()
{
    return $this->programStudy()->first()->faculty()->first();
}

, но я хочуполучить данные факультета, используя отношение, а не функцию, если возможно

1 Ответ

0 голосов
/ 06 марта 2019

Вы можете использовать отношения hasOneThrough, чтобы связать своего ученика с факультетом.

public function faculty()
{
    return $this->hasOneThrough(Faculty::class, ProgramStudy::class);
}
...