通过Symfony2配置DBAL返回小写键

问题描述:

我在Symfony2 PR9中使用Doctrine 2 DBAL(但不是ORM)。当我执行以下操作时通过Symfony2配置DBAL返回小写键

$conn = $this->get('doctrine.dbal.aademo_connection'); 
$user = $conn->fetchAssoc('SELECT * FROM users WHERE userid = 1'); 

然后返回数组中的所有键都具有与数据库列相同的略有不规则的大小写。不幸的是,我不能随意重命名数据库列。 :-)

随着PDO,我可能会迫使所有的按键与小写如下:

$conn->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); 

这看起来似乎应该是在Symfony2的/app/config/config.yml文件类似,但我一直无法在网上找到这样的选项。由于Doctrine包装PDO,有没有办法以某种方式通过ATTR_CASE选项?

+1

[这个问题](http://*.com/questions/4125725/doctrine-column-names-case-sensitivity)似乎是相关的,一开始,但(a)没有使用Doctrine 2和(b)没有在yml配置文件中解决这个问题。 – James 2011-03-31 22:01:12

DBAL连接选项可以包含一个名为driverOptions的参数。这应该与可以提供给PDO构造函数的属性数组相同(请参阅:Custom Driver Options)。添加到doctrine.dbal.aademo_connection

+0

我在做对吗? 'driverOptions:{“PDO :: ATTR_CASE”:“PDO :: CASE_LOWER”}'似乎没有工作。 – James 2011-04-01 13:34:48

+0

我想你需要使用这些常量的值:'driverOptions:{8:2}' – rojoca 2011-04-01 14:35:52

+0

Boom,fixed。谢谢! – James 2011-04-01 15:59:58