Я только что узнал, что в Doctrine вы можете определить скрытое поле выбора. Но я не могу понять, как получить к нему доступ в объекте Entity. мой запрос:
$qb = $this->createQueryBuilder('c');
$qb->addSelect('COUNT(m.id) as HIDDEN message_count');
$qb->leftJoin('c.messages', 'm')->groupBy('c.id')->getQuery()->getResult();
Я сделал это HIDDEN, потому что в противном случае вместо возврата массива Entities [entity1, ...]
он возвращает [[entity1, message_count], ...]
этот тип ответа. Я не хочу нарушать текущий формат результата.
Идея скрытого поля возникла из этой старой статьи . В этой статье автор говорит, что мы можем получить доступ к SQL полям SELECT в Entity (Model). Как описано в этой статье, я хочу получить доступ к полю HIDDEN (message_count) в Entity, чтобы получить количество сообщений, не выполняя для этого еще один запрос БД. Я не знаю, возможно ли это все еще, или я открыт для других решений.
Заранее спасибо.