Laravel - Вложенные отношения многие ко многим - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь понять концепцию отношений «многим через».

Вот мои нынешние отношения,

  • Студент может вступать в несколько клубов.
  • Клуб состоит из множества студентов.
  • В клубе есть разные позиции, которые могут быть назначены студентам (например, президент, председатель и т. Д.)

Вот как выглядит мой БД,

  • Студенты
  • Клубы
  • club_student (сводная таблица)
  • Позиции
  • club_position (сводная таблица)

Из документации Laravel мое понимание вложенных отношений таково: $students = Student::with('clubs.positions')->get();

Мой вопрос здесь как получить всю доступную информацию? (Имя студента, студенческие клубы, позиции студентов и позиции в соответствующих клубах).

Нужно ли все цикл foreach?

    foreach ($students as $student) {
        echo $student->name . " -> ";

        foreach ($student->clubs as $club) {
            echo $club->name . " -> ";

            foreach ($club->positions as $position) {
                echo $position->points . "<br>";
            }
        }
    }

Что если я захочу просто восстановить позицию студенческого клуба?

Есть ли способ напрямую получить $student->club->position?

1 Ответ

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

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

$ student-> club () -> first () -> позиции() -> get ();

// вы можете получить первый объект

$ student-> club-> позиции () -> get ();

или если вы хотите получить студентов клуба

$ club-> Students () -> get ();

и так далее ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...