2016-10-17 36 views

回答

1

Symfony使每个DBAL连接成为DI容器中的单独服务。默认的名称始终称为database_connection,通常只是doctrine.dbal.admin_connection的别名。

然后,如果您有其他连接,它们会自动添加。比如我有defaultadmin连接,因此Symfony的创建:

doctrine.dbal.admin_connection 
doctrine.dbal.default_connection 

您可以使用app/console debug:container | grep "DBAL\\\\Connection"控制台向所有注册的连接倾倒。

+0

我已经向我解释了错误。我在想,如果我可以在从另一台服务器接收参数并获得与默认相同的连接时创建新连接 – user26776

+1

您可以使用'set()'方法覆盖服务' service_container'。请参阅https://github.com/symfony/dependency-injection/blob/3.1/Container.php#L162。然而,我不认为这是一个好主意,因为你不知道其他服务已经将该服务注册为依赖关系,并且它可能会意外崩溃。 – martin