Doctrine2 - 如何添加自定义DBAL驱动程序?

问题描述:

在我的symfony 3.3.2项目中,我想使用odbc sage连接到sage数据库。 我创建了一个名为GestCom_Sage100的新dsn。Doctrine2 - 如何添加自定义DBAL驱动程序?

我试着用symfony的连接到该数据源,但我得到这个错误:

The given 'driver' SAGE Gestion commeriale 100 is unknown, Doctrine currently 
supports only the following drivers: pdo_mysql, pdo_sqlite, pdo_pgsql, 
pdo_oci, oci8, ibm_db2, pdo_sqlsrv, mysqli, drizzle_pdo_mysql, sqlanywhere, 
sqlsrv 

这里是我的config.yml:

# Doctrine Configuration 
doctrine: 
dbal: 
    default_connection: default 
    connections: 
     default: 
      driver: pdo_pgsql 
      host: '%database_host%' 
      port: '%database_port%' 
      dbname: '%database_name%' 
      user: '%database_user%' 
      password: '%database_password%' 
      charset: UTF8     
     sage: 
      driver: SAGE Gestion commeriale 100 
      host: 'localhost' 
      dbname: 'GestCom_Sage100' 
      user: '****' 
      password: '*****' 

即使Doctrine2文档http://doctrine-orm.readthedocs.io/projects/doctrine-dbal/en/latest/reference/configuration.html#pdo-oci-oci8

+0

'SAGE Gestion commeriale 100'不是有效的驱动程序,您应该使用与此相对应的列表中的驱动程序数据库。 – Kacper

+0

听起来像你需要pdo_odbc,虽然你可能需要安装它:http://php.net/manual/en/ref.pdo-odbc.php – Cerad

# Doctrine Configuration 
doctrine: 
    dbal: 
     driver:   YOUR_DRIVER 
     driver_class: YOUR_DRIVER_CLASS_NAMESPACE 
+0

你可以添加任何解释为什么这解决了这个问题? – Nisarg