0

Doctrineの「LIKE」クエリトピックに関する主要な投稿を見ました(たとえば、これを参照してください)。SYmfony2アプリケーションがあります。コントローラーで、エンティティリポジトリを呼び出してクエリを実行します。特に、エンティティリポジトリでは、次の関数を定義します。

return $this->getEntityManager()
        ->createQuery("SELECT p FROM AcmePromoBundle:Promo p 
            JOIN p.product pr 
            WHERE pr.name LIKE 'La'")->getResult(); 

動作しますが、名前がLaであるProduct( pr )がないため、何も返されません。次に、次のようにSQLクエリ内に文字を追加しようとします。

"SELECT p FROM AcmePromoBundle:Promo p JOIN p.product pr WHERE pr.name LIKE 'La%'" 

そしてここ:

"SELECT p FROM AcmePromoBundle:Promo p JOIN p.product pr WHERE pr.name LIKE La%" 

ただし、「クラスtrueは存在しません」というエラーが返されます。「 setParameter 」機能も使ってみましたが、うまくいきません!何か案が?

4

1 に答える 1

0

今それは動作します!すべてのエンティティクラス内に__toString関数を追加しただけです!例えば:

public function __toString(){
    return '\Acme\PromoBundle\Entity\Promo';
}  
于 2012-06-02T15:15:04.350 に答える