Zend框架2\Zend\Db\ResultSet\ResultSet-> toArray()不返回记录

Miz*_*man 10 php zend-framework2

我只是尝试通过扩展Zend AbstractTableGateway并使用继承select()函数来获取给定表中的所有记录.这个select()函数返回Zend类型ResultSet但是我无法使用得到一个结果数组toArray().

我收到以下消息:

作为此DataSource的一部分的行,类型对象不能转换为数组

更新

我把它解决了

假设您已经扩展了AbstractTableGateway

$resultSet = $this->select();
foreach($resultSet as $row) { echo $row->yourProperty }
Run Code Online (Sandbox Code Playgroud)

小智 6

你应该这样使用HydratingResultSet:

class MyClassTable extends AbstractTableGateway
{
    public function __construct(Adapter $adapter)
{
    $this->adapter = $adapter;
    $this->resultSetPrototype = new HydratingResultSet();
    $this->resultSetPrototype->setObjectPrototype(new MyClass());
    $this->initialize();
}

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

public function fetchAllToArray()
{
    $aData = $this->fetchAll()->toArray();
    return $aData;
}
Run Code Online (Sandbox Code Playgroud)


小智 3

只是尝试使用

(array)$resultSet
Run Code Online (Sandbox Code Playgroud)

我有时在 ZF 上使用过这个,效果很好。