我将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)中是整型的,所以我期望:
{"id":1,"name":"tester"}
有没有自动类型转换的方法?
发布于 2020-04-03 05:33:15
这确实是可能的,但你必须做一些准备工作。zdend-db附带了HydratingResultSet类,在here中描述了该类。您可以交付一个prototype对象,该对象将被实例化为初始化结果集的效果。如果你在"setter“方法中正确地管理类型,然后如果你实现了一个\JsonSerializable接口,你就可以得到你想要的结果。
https://stackoverflow.com/questions/58775978
复制相似问题