2013-09-22 2 views
3

나는 zf2에서 질의를하고 있는데, 나는 에 도착한 object(Zend\Db\ResultSet\HydratingResultSet)을 다시 얻는다.젠드 프레임 워크 2에서 객체의 배열을 반환하는 방법은 무엇입니까?

기본적으로 개체 배열을 가져오고 싶습니다. 이 날 다시 제공

공장

'address-mapper' => function ($serviceManager) { 
    $mapper = new Mapper\Address(); 
    $mapper->setDbAdapter($serviceManager->get('Zend\Db\Adapter\Adapter')); 
    $mapper->setEntityPrototype(new Entity\Address); 
    $mapper->setHydrator(new \Zend\Stdlib\Hydrator\ClassMethods); 

    return $mapper; 
} 

쿼리

public function fetchById() 
{ 
    $select = $this->getSelect()->where(array('id' => $Id)); 
    return $this->select($select); 
} 

: 여기

내가 가진 몇 가지 코드

object(Zend\Db\ResultSet\HydratingResultSet)[459] 
     protected 'hydrator' => 
     object(Zend\Stdlib\Hydrator\ClassMethods)[415] 
      protected 'underscoreSeparatedKeys' => boolean true 
      private 'callableMethodFilter' => 
      .... 
      .... 

어떤 아이디어를 내가에 필요한 해야 할 것?

+0

http://stackoverflow.com/questions/16590174/convert-zend-db-resultset-hydratingresultset-to-array-of-objects/16692849 내가 객체의 배열을 얻기 위해 찾고 있어요 – lorey

답변

4

Zend\Db\ResultSet\HydratingResultSettoArray 방법을 갖는다. 그래서 대신 결과 세트의 결과를 다차원 배열을 얻기 위해이 작업을 수행 할 수 있습니다

스티브에 의해 지적
public function fetchById() 
{ 
    $select = $this->getSelect()->where(array('id' => $Id)); 
    $arrayResults = $this->select($select)->toArray() 
    return $arrayResults; 
} 
+5

일관성을 위해 배열의 배열이 아니다. – Patrioticcow

+4

'HydratingResultSet'는'Iterator' 인터페이스를 구현하므로 이미'foreach'를 사용하여 배열 인 것처럼 결과를 반복 할 수 있습니다. 실제로 배열을 필요로한다면,'foreach'를 사용하여 수동으로 배열을 만들어야합니다. –

5

, 당신은 배열과 같은 결과 집합을 반복 할 수 있습니다. 그러나 실제 배열로 필요하면 ZF2는 배열로 변환 할 iteratorToArray 함수를 제공합니다. 관련

public function fetchById($Id) { 
    $select = $this->getSelect()->where(array('id' => $Id)); 
    $results = $this->select($select); 

    return \Zend\Stdlib\ArrayUtils::iteratorToArray($results); 
} 
+0

아픈 시도, 감사 – Patrioticcow

+0

이것은 내가 여기서 찾고 있었던 것이다 : http://stackoverflow.com/questions/16590174/convert-zend-db-resultset-hydratingresultset-to-array-of-objects/16692849 당신이 거기서 당신의 대답을 게시하면, 나는 그것을 받아 들일 것입니다! 고마워요! – lorey

+3

두 번째 매개 변수 인 $ recursive가 false 여야합니다. – lorey

관련 문제