2013-01-17 3 views
3

이 메서드에 where 절을 추가하고 싶습니다.Zend Framework 2 - Where 절

public function fetchAll() 
{ 
    $resultSet = $this->select(); 
    return $resultSet; 
} 

나는 이와 같이 추가했습니다.

그러나 아래 오류가 표시되었습니다.

Fatal error: Call to undefined method Zend\Db\ResultSet\ResultSet::where()

위에서 언급 한 방법으로 WHERE, GROUP 및 ORDER를 추가 할 수 있도록 도와주세요.

+0

'status'는 여기에 필드 이름이 있습니까? – Kenzo

+0

감사합니다. 예. 상태 열은 0과 1 값을가집니다. 1을 선택하고 싶습니다. – 2plus

+0

'TableGateway'에서 확장한다고 가정합니까? – Sam

답변

1

희망이 당신을 도울 것입니다 :

public function Profile($accountid) 
    { 
     $result = $this->select(function (Select $select) use ($accountid) { 
      $select 
       ->columns(array(
        'datefrom', 
        'available', 
        'used', 
        'details' 
       )) 
       ->where($this->adapter->getPlatform()->quoteIdentifier('accountid') . ' = ' . $this->adapter->getPlatform()->quoteValue($accountid)); 
     }); 

     $row = $result->current(); 

     if (!$row) { 
      throw new \Exception('could_not_find_row'); 
     } 

     return $row; 
    } 
+0

use()를 발견했습니다. 도움이 되길. 그래도 그 선언문에서 아무것도 찾을 수 없습니다. Zend 나 PHP일까요? – NaN

+1

use()는 PHP의 일입니다. – Diemuzi

1

는 또한 $sql->select()->where(array('status' => 1)) 또는 $table->select(array('status' => 1)) (성가신, 그들은 동일한 구문을 사용 소원) 할 수 있습니다.

column => value 매핑을 사용하여 연관 배열을 전달합니다 (배열이므로 여러 절을 사용할 수 있습니다). Diemuzi의 방법은 복잡한 식별자에 유용하지만 간단한 비교를 위해 더 읽기 쉬운 방법입니다.