Я хочу создать клиентский API-интерфейс JSON для внешнего интерфейса и для этого использую Symfony с Doctrine. В репозитории клиентов есть следующий код:
public function getCustomerById($customerId) {
return $this->createQueryBuilder('c')
->andWhere('c.customerId = :id')
->setParameter('id', $customerId)
->getQuery()
->getResult();
}
С этим кодом я получаю массив со всеми столбцами моей клиентской сущности или таблицы. Также у меня есть два отношения ManyToOne, например пользователь. Вышеупомянутый запрос также выбирает ВСЕ столбцы из этой пользовательской таблицы и помещает данные в дополнительный ключ, который является именно тем, что я хочу, но не во все столбцы, например. Я не хочу пароль в результате. Так есть ли простой способ указать, какие столбцы следует запрашивать ТОЛЬКО из объединенной таблицы, или мне нужно выбрать ВСЕ столбцы из клиента И пользователя, которого я хочу?
Если я попробую последнее с указанными столбцами в результате, все столбцы будут находиться на одном уровне в массиве (пользовательские данные не гидратированы под дополнительным ключом).
Ожидаемый результат / массив должен быть:
...
firstName: '',
lastName: '',
user:
userId: 1,
userName: '',
creationDate: '',
...
Как я могу получить такой результат и гидрировать соединенные столбцы таблицы в дополнительном ключе, как пользователь выше, без дополнительного отображения данных из одного массива в другой?