[英]Automatic type cast in zend-db
我將 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"}]
在我的表(MySQL)中,“id”字段的類型是 INTEGER,所以我期待:
[{"id":1,"name":"tester"}]
有沒有一種自動類型轉換的方法?
這確實是可能的,但你必須做一些准備。 zdend-db
附帶HydratingResultSet
class, 在此處進行了描述。 您可以交付原型 object,它將作為初始化結果集的效果進行實例化。 如果您在“setter”方法中正確管理類型,然后如果您對其實現\JsonSerializable
接口,您可以獲得所需的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.