Мы используем файлы cookie
Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
В Doctrine2 отношение "has many through" реализуется через явное создание промежуточной сущности (join entity), которая связывает две другие сущности отношениями Many-to-One.
Создается три класса сущностей: Источниковая, Целевая и Промежуточная (JoinEntity).
Промежуточная сущность (например, UserGroup
для "User has many Group through UserGroup") содержит два поля, которые являются отношениями Many-to-One к Источниковой (User
) и Целевой (Group
) сущностям.
Источниковая и Целевая сущности имеют отношение One-to-Many к Промежуточной сущности.
Для удобства доступа к Целевым сущностям через Источниковую (например, получить все Group
для User
), можно добавить метод в Источниковую сущность, который будет фильтровать Промежуточные сущности.
Пример структуры:
php
php
В Doctrine2 отношение "has many through" реализуется через явное создание промежуточной сущности (join entity), которая связывает две другие сущности отношениями Many-to-One.
Создается три класса сущностей: Источниковая, Целевая и Промежуточная (JoinEntity).
Промежуточная сущность (например, UserGroup
для "User has many Group through UserGroup") содержит два поля, которые являются отношениями Many-to-One к Источниковой (User
) и Целевой (Group
) сущностям.
Источниковая и Целевая сущности имеют отношение One-to-Many к Промежуточной сущности.
Для удобства доступа к Целевым сущностям через Источниковую (например, получить все Group
для User
), можно добавить метод в Источниковую сущность, который будет фильтровать Промежуточные сущности.
Пример структуры:
php
php
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.