我只是试图通过扩展Zend AbstractTableGateway和利用继承的select()函数来获取给定表中的所有记录。这个select()函数返回类型Zend ResultSet,但是我无法使用toArray()获得一个结果数组。
我收到以下信息:
作为此DataSource的一部分,不能将具有类型对象的行转换为数组。
更新
我想好了
假设您已经扩展了AbstractTableGateway
$resultSet = $this->select();
foreach($resultSet as $row) { echo $row->yourProperty }发布于 2013-05-30 13:51:37
您应该像这样使用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;
}发布于 2013-09-30 19:57:13
你也可以试试这个
$sql = new Sql($adapter);
$select = $sql->select();
$select->from('table');
$statement = $sql->prepareStatementForSqlObject($select);
$results = $statement->execute();
$resultSet = new ResultSet();
$resultSet->initialize($results);
print_r($resultSet->toArray());使用Zend\Db\ResultSet\ResultSet;
发布于 2013-02-21 14:31:29
就试着用
(array)$resultSet我有时在ZF上用过这个,效果很好。
https://stackoverflow.com/questions/12757808
复制相似问题