2012-02-06 3 views
0

단순 코드 Propel reusing query이 코드는 Propel 웹 사이트의 예제와 비슷하지만 여기서는 작동하지 않습니다. 이것은 버그인가, 나쁘냐?Propel 쿼리 버그 또는 재사용 재사용?

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

출력은 다음과 같습니다, resusing가 작동하지 않는됩니다

int 5 

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

int 1 

count() 처음으로 돌아 오 후 1

심지어 MashupSettingQuery::create()->filterByMashup($this)->keepQuery(true) 문제가 해결되지 않은 사용하기 때문이다.

+0

의사에 따르면, 작동해야합니다. 그렇지 않으면 버그를 발견했습니다. –

답변

1

두 번째 계산 전에는 findOneByKey 쿼리를 만들기 때문에 두 번째 계산에서는이 특정 쿼리가 반환하는 개체의 수를 계산하기 때문에 정상이라고 생각합니다. 그리고 쿼리는 findOneByKey이기 때문에 하나의 객체 만 반환합니다.

+0

Maxime이 옳습니다. 그러나 find *는 terminaison 메서드이므로 쿼리에 영향을 주어서는 안됩니다. findOneByKey는 filterKey() 및 제한 (1)을 쿼리에 추가합니다. –

+0

@WilliamDURAND 어떻게 Propel에서 쿼리를 재사용 할 수 있습니까? 제 예제에서 무엇이 잘못 되었습니까? – gremo

+0

명령을 두 번 실행하려면 두 개의 명령 변수를 만들어야합니다. Like : $ q = MashupSettingQuery :: create() -> filterByMashup ($ this); $ q2 = 복제본 $ q; $ q-> findSomething(); $ q2-> findSomethingElse(); – Maxime