【问题标题】:Configure DBAL via Symfony2 to return lowercase keys通过 Symfony2 配置 DBAL 以返回小写键
【发布时间】:2011-03-31 21:59:23
【问题描述】:

我在 Symfony2 PR9 中使用 Doctrine 2 DBAL(但不是 ORM)。当我执行以下操作时

$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 选项?

【问题讨论】:

  • This question 乍一看似乎是相关的,但是 (a) 没有使用 Doctrine 2 并且 (b) 没有在 yml 配置文件中解决问题。

标签: php sql-server doctrine-orm symfony


【解决方案1】:

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

【讨论】:

  • 我这样做对吗? driverOptions: {"PDO::ATTR_CASE" : "PDO::CASE_LOWER"} 似乎不起作用。
  • 我认为您需要使用这些常量的值:driverOptions: {8 : 2}
  • 在 Symfony2 中,这个参数被称为 options,而不是 driverOptions(参见 stackoverflow.com/a/13299382/1274733
猜你喜欢
  • 2011-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 2015-03-27
  • 2016-11-07
  • 1970-01-01
相关资源
最近更新 更多