2011-11-14 4 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); 

Doctrineは望ましくないhereを述べたように、結果のエンティティのすべてに「U」の接頭辞、追加されます。

結果からこれらのプレースホルダを削除するためのネイティブの教義メソッド/ソリューションはありますか?

答えて

1

あなたのコードには表示されませんが、getScalarResult()を使用してクエリを実行していると思います。私の経験上、Doctrineは、のようにスカラー水和を使用して結果を返すときに、別名接頭辞を付けるだけです。オブジェクトの水和メソッドの1つを使用する場合は、接頭辞を削除する必要があります。 Doctrineのオブジェクトの水和メソッドは、getResult()、getSingleResult()、およびgetArrayResult()です。

どの水分補給モードを使用していますか?上記のいずれかの方法に切り替えて問題を解決していますか?

+0

私は自分のqsを更新しました。あなたは私の正確なクエリを表示することがあります。このクエリは配列を返します。 –

+0

私はgetResult(3)をgetArrayResult()に置き換えました。あなたが言及したように、接頭辞は応答に対してgone.thanksです。 –

関連する問題