如何在Doctrine2中删除QueryBuilder占位符?

时间:2011-11-14 19:33:01

标签: mysql doctrine-orm

假设我有以下代码:

        $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所述,这是不可取的。

是否有任何原生学说方法/解决方案可以从结果中删除这些占位符?

1 个答案:

答案 0 :(得分:1)

它没有出现在你的代码中,但我猜你正在使用getScalarResult()来执行你的查询。根据我的经验,当您使用标量水合作为返回结果时,Doctrine只会附加别名前缀,如here所述。如果您使用对象水合方法之一,前缀应该消失。 Doctrine的对象水合方法是getResult(),getSingleResult()和getArrayResult()。

您使用的是哪种水合模式,并将其切换为上述方法之一可以解决您的问题?