Doctrine SQL Self Join не возвращает все данные в переполнении стека

Мне нужно было сделать самообъединение на столе, и так как я не мог сделать с помощью DQL, я пошел на SQL. Вот запрос:

select child.*, parent.* from gamme child
left join gamme parent on child.gamme_parent = parent.gamme_id
where child.gamme_catalogue_id = {an id}

Когда я запустил этот запрос в TOAD, я получил ожидаемые результаты:

+------------+-------------+------------+------------+------------+------------+
|  column_a  |   column_b  |  column_c  | column_a_1 | column_b_1 | column_c_1 |
+------------+-------------+------------+------------+------------+------------+
|            |             |            |            |            |            |
+------------+-------------+------------+------------+------------+------------+

Теперь, когда я пытаюсь var_dump тот же запрос в PHP, я не получаю никаких данных соединения:

Вот мой PHP-код:

$em = $this->getEntityManager();
$connection = $em ->getConnection();

$query = "select child.*, parent.* from gamme child
left join gamme parent on child.gamme_parent = parent.gamme_id
where child.gamme_catalogue_id =".$catId;

$stmt = $connection->prepare($query);
$stmt->execute();
$result = $stmt->fetchAll();
var_dump($result);

Вот что var_dump дает мне:

array
0 =>
array (size=3)
'column_a' => {some values}
'column_b' => {some values}
'column_c' => {some values}
1 =>
array (size=3)
'column_a' => {some values}
'column_b' => {some values}
'column_c' => {some values}
...

Как я могу получить данные соединения тоже в PHP?

РЕДАКТИРОВАТЬ

Поскольку я не мог понять, почему я не получаю данные соединения с SQL, мне наконец удалось заставить его работать с самим DQL.

Вот как я это сделал для тех, кто может искать решение о присоединении к сущности Doctrine:

$qb = $this
->_em
->createQueryBuilder();

$qb
->select('c', 'g', 'p')
->from('CatalogueBundle:Catalogue', 'c')
->leftJoin('c.gammes', 'g')
//"gammes" is found in entity "Catalogue" and targets entity "Gamme"->leftJoin('g.parent', 'p')
//"parent" is found in entity "Gamme" and targets entity "Gamme" itself
->where('c.catalogueId =:catId')
->setParameter('catId', $catId);

$result = $qb->getQuery()->getArrayResult();

0

Решение

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

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

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

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