在zend-db中自动转换的类型

问题描述 投票:1回答:1

我将zend-db与zend-expressive结合使用。我有一个处理程序,该处理程序从数据库表中选择所有记录,并将结果作为JSON响应返回:

public function handle(ServerRequestInterface $request) : ResponseInterface {
    $select = new Select();
    $select->from('person');
    $select->columns([
        'id',
        'name',
    ]);

    $sql = new Sql($this->dbAdapter);
    $statement = $sql->prepareStatementForSqlObject($select);
    $result = $statement->execute();

    $resultSet = new ResultSet();
    $resultSet->initialize($result);

    return new JsonResponse($resultSet->toArray());
}

有点让我烦恼的是,响应看起来像这样:

[{"id":"1","name":"tester"}]

字段“ id”在我的表(MySQL)中为INTEGER类型,因此我期望:

[{“ id”:1,“ name”:“ tester”}]]

有没有一种自动类型转换的方法?

php json zend-db zend-expressive
1个回答
0
投票

这确实有可能,但是您必须做一些准备。 zdend-db带有HydratingResultSet类,其描述为here。您可以交付一个原型对象,该对象将被初始化为初始化结果集的结果。如果您使用“ setter”方法适当地管理类型,然后再对它实现\JsonSerializable接口,则可以实现所需的结果。

© www.soinside.com 2019 - 2024. All rights reserved.