Итак, я пришел к тому, что мне нужно было создать собственный запрос в моем хранилище сущностей, чтобы выполнить дополнительный выбор.
Сам запрос кажется надежным и действительно находит нужный мне результат (я проверил, запустив запрос в Navicat), однако при попытке просмотреть результаты (используя шаблоны Twig) я получаю следующую ошибку:
Элемент "id" для "Array" не существует в DEMODemoBundle: Персонал / Компания: company.html.twig в строке 42
Строка 42 в этом шаблоне:
<td><a href="{{ path('staff_company_show', { 'id': entity.id }) }}">{{ entity.id }}</a></td>
Ранее я использовал базовый запрос "findAll" в своем контроллере, и шаблон Twig работал нормально (он использует цикл for для просмотра результатов и распечатывания таблицы)
Итак, я предполагал, что если мой пользовательский запрос извлечет список результатов со всеми одинаковыми столбцами (только 1 добавленный дополнительный в подвыборе, хотя и не упомянутый идентификатор), то все должно быть хорошо!
Но явно нет. Кажется, что по какой-то причине существует другой уровень Array, и я не знаю, почему?
Вот мой пользовательский запрос в репо (он делает суб-выбор для создания столбца parent_name):
public function getCompanyWithParent()
{
$dql = 'SELECT c, (SELECT p.name FROM DEMO\DemoBundle\Entity\User\Company p WHERE p.id = c.parent) as parent_name FROM DEMO\DemoBundle\Entity\User\Company c';
$query = $this->getEntityManager()->createQuery($dql);
return $query->getArrayResult();
}
Я пробовал оба:
return $query->getArrayResult();
и
return $query->getResult();
Но безрезультатно.
Любые люди идеи?