假设我有以下代码:
$qb = $this->em->createQueryBuilder();
$qb->add('select', 'a')
->add('from', 'Entities\Patientprofile a')
->add('where', 'a.userid=?1')
->setParameter(1, $patientId);
;
$query = $qb->getQuery();
$patientProfile = $query->getResult(3);
Doctrine为所有结果实体添加了“u”前缀,如here所述,这是不可取的。
是否有任何原生学说方法/解决方案可以从结果中删除这些占位符?
答案 0 :(得分:1)
它没有出现在你的代码中,但我猜你正在使用getScalarResult()来执行你的查询。根据我的经验,当您使用标量水合作为返回结果时,Doctrine只会附加别名前缀,如here所述。如果您使用对象水合方法之一,前缀应该消失。 Doctrine的对象水合方法是getResult(),getSingleResult()和getArrayResult()。
您使用的是哪种水合模式,并将其切换为上述方法之一可以解决您的问题?