Я использую Doctrine ORM для PHP и у меня есть вопрос о загрузке отношений.Кажется, что модель загружает другой набор отношений в зависимости от того, как она была загружена, кто-нибудь знает способ обойти это?
Это может быть немного запутанным.Вот пример.Скажем, у нас есть модель A и модель B с отношением многих ко многим - у A есть один или несколько BВ моем наборе данных у меня есть одна запись A, «A1», которая связана с двумя записями B, «B1» и «B2».
Есть два способа загрузить запись A, но в обоихСценарии Я хочу иметь возможность получить все связанные записи B, используя $myModelA->B
.
Первый сценарий - это прямая загрузка «А1».Так что я бы пошел $myModelA = A_Table->find("A1")
, просто.Затем, когда я пойду $myModelA->B
, я смогу увидеть как "B1", так и "B2".Это ожидается.
Второй сценарий вызывает проблемы.Я хочу найти все записи, связанные с "B2".Поэтому я создаю Doctrine_Query и выполняю соединение между A и B и указываю, что мне нужны записи A, связанные с "B2".Теперь я хочу просмотреть список записей А, одна из которых «А1».Так как у меня модель «А1» в $myModelA
, такая же, как в первом сценарии, я ожидаю, что когда я уйду $myModelA->B
, я смогу увидеть и «В1», и «В2».не тот случайЯ вижу только "B2".Я предполагаю, что это потому, что запрос, который я использовал для извлечения «А1», во-первых, требовал только записи, связанные с «В2», поэтому затем, когда я повторяю отношение назад, то как-то еще сохраняется условие, и я могу получить"B2".
Вопрос в том ... как заставить модель во втором сценарии игнорировать предыдущий запрос и загрузить все связанные записи в эту модель?
Спасибо!