2011-03-31 20 views
4

我在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://stackoverflow.com/questions/4125725/doctrine-column-names-case-sensitivity)似乎是相關的,一開始,但(a)沒有使用Doctrine 2和(b)沒有在yml配置文件中解決這個問題。 – James 2011-03-31 22:01:12

回答

4

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