2012-02-06 6 views
0

シンプルPropel reusing queryは私のコードはPropelのウェブサイトの例に似ていますが、ここでは機能しません。 これはバグか悪いですか?Propelのクエリのバグや悪い点を再利用していますか?

$q = MashupSettingQuery::create()->filterByMashup($this); 
var_dump($q->count(), $q->findOneByKey('redirect_uri'), $q->count()); 

出力は次のとおりです。

int 5 

object(MashupSetting)[28] 
    protected 'startCopy' => boolean false 
    protected 'id' => int 9 
    protected 'key' => string 'redirect_uri' (length=12) 

int 1 

でもMashupSettingQuery::create()->filterByMashup($this)->keepQuery(true)を使用しても問題が解決しなかった

1. 5 count()最初に戻っているため、その後resusingが動作していない、です。

+0

文書によると、うまくいくはずです。そうでなければ、バグが見つかりました。 –

答えて

1

2番目のカウントの直前にfindOneByKeyクエリを作成するので、2番目のカウントはこの特定のクエリが返すオブジェクトの数をカウントするだけなので、これは普通だと思います。 そして、クエリーはfindOneByKeyなので、明らかに1つのオブジェクトを返します。

+0

Maximeが正しいです。しかし、find *はterminaisonメソッドなので、クエリには影響を与えてはいけません。明らかにそうではありません。 findOneByKeyは、filterKey()と制限(1)をクエリに追加します。 –

+0

@WilliamDURAND Propelでどのようにクエリを再利用できるのでしょうか?私の例で何が間違っていますか? – gremo

+0

コマンドを2回実行する場合は、2つのコマンド変数を作成する必要があります。 Like: $ q = MashupSettingQuery :: create() - > filterByMashup($ this); $ q2 =クローン$ q; $ q-> findSomething(); $ q2-> findSomethingElse(); – Maxime

関連する問題