Доктрина: возвращение одномерного - PullRequest
0 голосов
/ 08 июня 2018

У меня есть отношение ManyToOne между двумя сущностями ArticleLine и Artcile:

<?php
//ArticleLine.php
ManyToOne(targetEntity="Gain\Bundle\ArticleBundle\Entity\Article")

Я пытаюсь получить список идентификаторов, основываясь на некоторых условиях, где ...
Это мойзапрос доктрины dql:

SELECT tl.id FROM AppBundle\Entity\ArticleLine tl INNER JOIN tl.turnover t INNER JOIN tl.article a WHERE t.supplier = :supplier AND t.year = :year AND tl.significant = false ORDER BY tl.id asc


После вызова $qb->getQuery()->getResult() я получаю этот результат массивов ...

array:138 [
  0 => array:1 [
    "id" => 64624
  ]
  1 => array:1 [
    "id" => 64630
  ]
  2 => array:1 [
    "id" => 64631
  ]
  3 => array:1 [
    "id" => 64632
  ]
  4 => array:1 [
    "id" => 64633
  ]
  5 => array:1 [
    "id" => 64637
  ]
  6 => array:1 [
    "id" => 64638

Любая идея, как я могу преобразовать свой результат водномерный массив или игра в режиме гидратации, чтобы получить что-то вроде этого


[64624, 64630, 64631, 64633 ... ] или [0 => 64624, 1 => 64630, 2 => 64631 ...]

1 Ответ

0 голосов
/ 08 июня 2018

Вы можете преобразовать свой результат с помощью функции array_map:

$result = $qb->getQuery()->getResult()
$result = array_map('current', $result);

Вы также можете использовать array_column fucntion:

$result = array_column($result, "id")

Если решение существует в режиме гидратации.Я хотел бы знать:)

...