2011-11-14 31 views
0

假設我有以下一段代碼:如何刪除Doctrine2中的QueryBuilder佔位符?

 $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); 

學說作爲補充規定here「U」字頭的所有結果的實體,這是不可取的。

是否有任何原生教義方法/解決方案從結果中移除這些佔位符?

回答

1

它沒有出現在你的代碼中,但我猜你正在使用getScalarResult()來執行你的查詢。根據我的經驗,當您使用標量水合來返回您的結果時,Doctrine只會附加別名前綴,如解釋here。如果您使用其中一種對象水合方法,則前綴應該消失。學說的對象水化方法是getResult(),getSingleResult()和getArrayResult()。

您正在使用哪種水合模式,並將其切換爲上述方法之一解決您的問題?

+0

我剛更新了我的qs。您可能會看到我的確切查詢。此查詢返回一個數組。 –

+0

我用getArrayResult()替換了getResult(3),正如你所提到的,前綴已經不存在了。 –

相關問題