3


我正在使用 Silex 微框架构建一个简单的 REST 后端。

在每个控制器内部,我正在对 MySQL 数据库运行一些查询(使用 Doctrine 2 DBAL API),如下所示:

$app->get('/customers', function (Application $app) {
    $recordset = $app['db']->fetchAll('SELECT id, name FROM Customers');
    return $app->json($recordset);
});

任何人都可以向我解释为什么 Doctrine 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"
  }
}

谢谢你的帮助。

4

1 回答 1

1

正如 Maerlyn 所建议的,这似乎是 PDO 驱动程序的一个已知问题,因此也是 Doctrine DBAL 的一个已知问题。

在不使用 Doctrine 2 ORM 层提供的映射能力的情况下,我发现这个答案是 DBAL 限制的一种可能的解决方法。

于 2012-11-06T08:19:51.680 回答