簡體   English   中英

zend-db 中的自動類型轉換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM