Я настроил два подключения к базе данных. Одно соединение называется пользователем, а другое называется клиентом. Это конфигурация в файле config.yml:
doctrine:
dbal:
default_connection: client
connections:
client:
driver: pdo_mysql
host: '%client_database_host%'
port: '%client_database_port%'
dbname: '%client_database_name%'
user: '%client_database_user%'
password: '%client_database_password%'
charset: UTF8
mapping_types:
enum: string
user:
driver: pdo_mysql
host: '%user_database_host%'
port: '%user_database_port%'
dbname: '%user_database_name%'
user: '%user_database_user%'
password: '%user_database_password%'
charset: UTF8
mapping_types:
enum: string
orm:
auto_generate_proxy_classes: '%kernel.debug%'
default_entity_manager: ~
entity_managers:
client:
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
ProjectModelBundle: ~
connection: client
user:
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
BaseModelBundle: ~
ProjectModelBundle: ~
connection: user
Но я всегда получаю первый менеджер сущности, несмотря ни на что. Вот как я использую диспетчер сущностей в сервисах:
# BASE
htec.project_model_bundle.repository.database.client_base:
class: Project\BaseModelBundle\Repository\Database\DatabaseRepository
arguments: ['@service_container', '@doctrine.orm.client_entity_manager', '@form.factory']
htec.project_model_bundle.repository.database.user_base:
class: Project\BaseModelBundle\Repository\Database\DatabaseRepository
arguments: ['@service_container', '@doctrine.orm.user_entity_manager', '@form.factory']
Но независимо от того, что я делаю, я всегда получаю первый менеджер сущности, который я определил в настройках orm- > entity_managers. Например, если configure orm выглядит следующим образом:
orm:
auto_generate_proxy_classes: '%kernel.debug%'
default_entity_manager: ~
entity_managers:
client:
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
ProjectModelBundle: ~
connection: client
user:
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
BaseModelBundle: ~
ProjectModelBundle: ~
connection: user
Я всегда получаю менеджер объектов клиента, даже если я поставлю '@doctrine.orm.user_entity_manager' в качестве аргумента службы.
Если я настрою orm следующим образом:
orm:
auto_generate_proxy_classes: '%kernel.debug%'
default_entity_manager: ~
entity_managers:
user:
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
BaseModelBundle: ~
ProjectModelBundle: ~
connection: user
client:
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
ProjectModelBundle: ~
connection: client
Я всегда получаю менеджер пользовательских сущностей, даже если я поставлю '@doctrine.orm.client_entity_manager' в качестве аргумента службы.
Что я здесь делаю неправильно?