4

私はzf2でクエリを実行していますが、プロパティにアクセスするためにオンにobject(Zend\Db\ResultSet\HydratingResultSet)する必要があるものを返しforeachます。

デフォルトでオブジェクトの配列を取得したいと思います。

ここに私が持っているいくつかのコードがあります:

工場

'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' => 
          ....
          ....

私がしなければならないことはありますか?

4

2 に答える 2

4

Zend\Db\ResultSet\HydratingResultSetには方法toArrayがあります。したがって、これを実行して、結果セットの代わりに結果の多次元配列を取得できます。

public function fetchById()
{
    $select = $this->getSelect()->where(array('id' => $Id));
    $arrayResults = $this->select($select)->toArray()
    return $arrayResults;
}
于 2013-09-22T13:09:10.830 に答える