При выполнении запроса DQL, такие как:Получение Doctrine DQL приводит к SQL путь
SELECT u AS user, t AS transaction
FROM Model\User u
JOIN Model\Transaction t WITH t.user = u
Вы получаете чередующихся рядов результатов, таких как:
['user' => Model\User(1)]
['transaction' => Model\Transaction(1)]
['transaction' => Model\Transaction(2)]
['user' => Model\User(2)]
['transaction' => Model\Transaction(3)]
['transaction' => Model\Transaction(4)]
['transaction' => Model\Transaction(5)]
Можно ли получить результат в SQL так, как:
['user' => Model\User(1), 'transaction' => Model\Transaction(1)]
['user' => Model\User(1), 'transaction' => Model\Transaction(2)]
['user' => Model\User(2), 'transaction' => Model\Transaction(3)]
['user' => Model\User(2), 'transaction' => Model\Transaction(4)]
['user' => Model\User(2), 'transaction' => Model\Transaction(5)]
Было бы гораздо легче иметь дело с чем чередующимися объектами.
Спасибо, я попробовал это, но мой конструктор получает идентификаторы объектов, а не объекты, в качестве аргументов! Может быть, ключевое слово NEW есть только для скаляров? – Benjamin
Из http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#new-operator-syntax "Обратите внимание, что вы можете передавать только скалярные выражения к конструктору ». – eggmatters
Одна вещь, о которой я не упоминал, это то, что я работаю над проектом Doctrine. Поддержка этого - вопрос открытия проблемы. Однако главный вопрос должен быть рассмотрен на Доктрине 3, так как я сейчас работаю над этим. –