У меня проблема с Doctrine 2 и левым соединением в многозначных отношениях, которые я пытаюсь заставить работать. Вероятно, это мой конструктор запросов, но я не могу понять его.
У меня есть таблица соединения, например:
----------------------------------
| user_id | attraction_id |
----------------------------------
| 4 1 |
| 4 2 |
| 4 3 |
----------------------------------
Для двух моделей, Пользователь и Привлечение, где Пользователь является владельцем отношения.
Когда я выполняю этот запрос:
$attractions = $CI->em->createQueryBuilder()
->select('a', 'u')
->from('\ListLovers\Model\Attraction', 'a')
->leftJoin('a.users', 'u', \Doctrine\ORM\Query\Expr\Join::WITH, 'u.id = 4')
->getQuery()->getResult();
Мои пользователи считают аттракцион с идентификатором 1 равным 1. Отлично!
Теперь, если я добавлю еще одну строку в таблицу соединения, например:
----------------------------------
| user_id | attraction_id |
----------------------------------
| 1 1 |
| 4 1 |
| 4 2 |
| 4 3 |
----------------------------------
...и выполню тот же запрос, число моих пользователей для привлечения с идентификатором 1 будет ...НУЛЬ. Что за?
Я что-то упустил?
Спасибо, Отметка.