2012-04-24 4 views
1

ZendSkeletonApplication으로 시작하여 Zend \ Db \ TableGateway \ TableGateway를 확장 한 모델을 추가했습니다. 나는 다음과 같은 방법이 있습니다ZF2 tableGateway select

public function findByType($type) { 
    $rowset = $this->select('type' => $type); 
    return $rowset; 
} 

이 작동하지만, 지금 내가 할 경우이 : 그것은 실행 쿼리가 첫 번째 작품

$foo = $table->findBytype('foo'); 
$bar = $table->findBytype('bar'); 

입니다

:

SELECT * FROM table WHERE 'type' = 'foo' 

그러나 두 번째 쿼리는 다음 쿼리를 실행합니다.

SELECT * FROM table WHERE 'type' = 'foo' AND 'type' = 'bar' 

이 예상 된 동작입니까? 그렇다면 나는 방법은 다음과 같은 쿼리를 실행 호출 두 번째 가질 수있는 방법 : 사전에

SELECT * FROM table WHERE 'type' = 'bar' 

감사합니다!

+0

그것이 allready 최신 GitHub의 버전에서 수정 된 zf2의 베타 3에서 단지 사소한 버그이었다 밝혀졌습니다. – user458753

답변

8

는 다음과 같이 tableGateway에서 사용을 선택해야 : 당신이 다음 번을 호출 할 때

$select = $this->getSql()->select(); 
$select->where(array('type' => 'foo')) 
    ->where(array('type' => 'bar')); 
$rowset = $this->selectWith($select); 

선택()() paramters를 Where 초기화됩니다.

내 블로그에서 더 많은 사용을 참조하십시오 http://avnpc.com/pages/advanced-database-select-usage-in-zf2

+0

블로그의 영어 버전이 있습니까? 발췌 문장은 잘 끝났지 만 중국어로 된 모든 것을 얻습니다. Google은 독일어로 번역하려고합니다. 재미있는 경험입니다. –