Трехсторонние опорные точки Laravel

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

Модель 1: Лицензии

licences_table
id
name

Модель 2: Дисциплины

disciplines_table
id
name

Модель 3: Уровни

levels_table
id
name
weight

Таким образом, лицензия может иметь много дисциплин, а дисциплины могут иметь много уровней.

Но уровни с дисциплинами должны быть уникальными для определенной лицензии.

Я также создал сводную таблицу с тремя внешними ключами:

discipline_levels_table
level_id
discipline_id
licence_id

Я определил отношения между этими тремя моделями, используя ownToMany.

Проблема в том, что когда я пытаюсь получить все лицензии с их дисциплинами и уровнями, подобными этим:Licence::with(array("disciplines","disciplines.levels"))->get();

Я получаю уровни, которые связаны только с дисциплинами, а НЕ с лицензией И дисциплинами.

Я хотел бы получить все уровни, которые связаны с каждой дисциплиной и каждой лицензией.

Как это сделать?

Должен ли я определить разные отношения между моделями?

Или я должен структурировать другой запрос?

2

Решение

Задача ещё не решена.

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

Других решений пока нет …

По вопросам рекламы [email protected]