Я установил driverOptions в файле конфигурации, как указано в документации DBA доктрины.
Но это дает ошибку
1/1 InvalidConfigurationException: непризнанные опции "driverOptions" в разделе "doctrine.dbal.connections.pdoDevCon"
Мой конфигурационный файл
dbal: default_connection: pdoDevCon connections: pdoDevCon: driver: %dev_database_driver% # < host: %dev_database_host% # | port: %dev_database_port% # | Defined in user: %dev_database_user% # | password: %dev_database_password% # < charset: UTF8 driverOptions: {3: 2} mapping_types: enum: string set: string orm: auto_generate_proxy_classes: %kernel.debug% pdoDevCon: connection: pdoDevCon mappings: AcmeDemoBundle: ~ AcmeHelloBundle: ~
Я использую PDO :: ATTR_ERRMODE как 3 PDO :: ERRMODE_EXCEPTION как 2 , он не работает, даже если я использую строки.
От http://symfony.com/doc/master/reference/configuration/doctrine.html#doctrine-dbal-configuration
DoctrineBundle поддерживает все параметры, которые принимают драйверы Doctrine по умолчанию, преобразованные в стандарты именования XML или YAML, которые Symfony применяет . Дополнительную информацию см. В документации Doalrine DBAL.
В файле конфигурации symfony driverOptions
нет driverOptions
, только options
Я не использую Symfony, но я использовал Doctrine\DBAL\DriverManager::getConnection()
.
Мне пришлось перейти на DriverManager
и сделать эту песню и танцевать, чтобы указать время ожидания соединения ( ATTR_TIMEOUT
):
function buildDbConn($config, $timeout) { $params = $config->toArray(); $params['driverOptions'] = [ PDO::ATTR_TIMEOUT => intval($timeout), PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ]; $driver = new Doctrine\DBAL\Driver\PDOMySql\Driver; return new Doctrine\DBAL\Connection($params, $driver); }
Мне всегда нужен драйвер pdo_mysql, это можно настроить.