1
我正在使用Silex微框架構建一個簡單的REST後端。Doctrine 2 DBAL只返回字符串數據類型
每個控制器裏面,我正在對MySQL數據庫的某些查詢(使用Doctrine 2 DBAL API),像如下:
$app->get('/customers', function (Application $app) {
$recordset = $app['db']->fetchAll('SELECT id, name FROM Customers');
return $app->json($recordset);
});
任何人都可以向我解釋爲什麼主義DBAL只返回string
數據類型,無論列定義?下面是一個使用PHP var_dump($recordset)
功能對應的輸出(注意id
字段應該是整數類型,而不是字符串):
array(1) {
[0]=>
array(2) {
["id"]=>
string(5) "10043"
["name"]=>
string(20) "Hey, I'm just a test"
}
}
感謝您的幫助。
由於DBAL內部使用PDO,我相信這是一個重複的http://stackoverflow.com/questions/1197005/how-to-get-numeric-types-from-mysql-using-pdo – Maerlyn
@Maerlyn - 我意識到PDO問題,但是,在查看Doctrine源代碼時,我注意到每個數據庫表列都映射到相應的DBAL類型,它們公開了convertToDatabaseValue和convertToPHPValue方法。但是,這些方法似乎不影響查詢的結果。爲什麼? – Jerus
我不知道教條的內部,你可以在github上的教條存儲庫上打開一張票,以得到一個深入的答案(如果它是一個錯誤,也可能是修復)。 – Maerlyn