Php ZF2:TableGateway结果集到JSON

Php ZF2:TableGateway结果集到JSON,php,json,zend-framework2,Php,Json,Zend Framework2,我正在尝试将数据从数据库返回到Zend Framework 2中的JSON。我正在使用TableGateway,它会返回一个结果集。但是JsonModel无法显示结果集那么有没有转换的方法,或者有没有其他方法访问我的数据库? HomeController中的索引操作 public function indexAction() { return new JsonModel(array( 'posts' => $posts, 'resources' =&

我正在尝试将数据从数据库返回到Zend Framework 2中的JSON。我正在使用TableGateway,它会返回一个结果集。但是JsonModel无法显示结果集那么有没有转换的方法,或者有没有其他方法访问我的数据库?

HomeController中的索引操作

public function indexAction()
{
    return new JsonModel(array(
        'posts' => $posts,
        'resources' => $resources,
        'style' => $style,
        'imgStyle' => $imgStyle,
        'success' => true,
    ));
}
返回结果集的函数

public function fetchAll()
{
    $resultSet = $this->tableGateway->select(function (Select $select) {
        $select->order('date DESC');
    });
    return $resultSet;
}

考虑到您已经在module.config.php中完成了此操作:

'view_manager' => array(
    'strategies' => array(
        'ViewJsonStrategy',
    ),
),
我的下一个建议是将结果转换为数组

$resultSet->toArray();


您返回的新JsonModel是正确的。

toArray()将不起作用,因此我手动将其转换为数组!是的,事实上,如果您将toArray提取到一个类中,它将失败,不知道为什么,让函数toArray()始终工作将是有用的:),我相信zf2开发人员可能有一个很好的理由。
$return = array();

foreach( $resultSet as $r )
    $return[]=$r;