Pat*_*cow 4 php arrays object zend-db zend-framework2
我在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;
}
Run Code Online (Sandbox Code Playgroud)
查询
public function fetchById()
{
$select = $this->getSelect()->where(array('id' => $Id));
return $this->select($select);
}
Run Code Online (Sandbox Code Playgroud)
这让我回来了:
object(Zend\Db\ResultSet\HydratingResultSet)[459]
protected 'hydrator' =>
object(Zend\Stdlib\Hydrator\ClassMethods)[415]
protected 'underscoreSeparatedKeys' => boolean true
private 'callableMethodFilter' =>
....
....
Run Code Online (Sandbox Code Playgroud)
任何想法我需要做什么?
正如Steve所指出的,您可以像数组一样迭代结果集.但是如果你需要它作为一个实际的数组,ZF2提供了iteratorToArray函数,它将把它转换为一个数组.
public function fetchById($Id) {
$select = $this->getSelect()->where(array('id' => $Id));
$results = $this->select($select);
return \Zend\Stdlib\ArrayUtils::iteratorToArray($results);
}
Run Code Online (Sandbox Code Playgroud)