Doctrine 2 DBAL仅返回字符串数据类型

时间:2012-10-29 16:24:55

标签: doctrine-orm silex dbal


我正在使用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"
  }
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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

在不使用Doctrine 2 ORM图层提供的映射功能的情况下,我发现this答案是对DBAL限制的可能解决方法。