Symfony3:在服务中注入几个@ doctrine.orm.entity_manager

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Symfony3:在服务中注入几个@ doctrine.orm.entity_manager相关的知识,希望对你有一定的参考价值。

我和several connexion一起工作

这是我的config.yml:

doctrine:
    dbal:
        default_connection: connexion_1# specify the connexion used by default
        connections:
            connexion_1:
                driver:   "%database_driver1%"  
                 ....
            connexion_2:
                driver:    "%database_driver2%" 
                 ...

我想在服务中注入2个connexion实体管理器。

在我的service.yml中,我可以注入一个名为“@ doctrine.orm.entity_manager”的entity_manager。这是默认管理器

@doctrine.orm.entity_manager argument
    zip_command:
        class: BackEndBundleCommandipCommand
        arguments:
            - '@doctrine.orm.entity_manager'
        tags:
            -  { name: console.command }         

如何注入其他连接?

答案

选项1

根据文档,您应该能够通过doctrine.orm.{entity_manager_name_here}_entity_manager别名注入您的自定义实体管理器。您可以在config.yml中的doctrine.orm.entity_managers下找到您的实体经理的姓名。

选项2

如果您想要访问服务中的所有实体经理,可以直接注入DoctrineCommonPersistenceManagerRegistry并使用getManager(s)方法。

以上是关于Symfony3:在服务中注入几个@ doctrine.orm.entity_manager的主要内容,如果未能解决你的问题,请参考以下文章

Symfony3 服务器返回“500 Internal Server Error”

Symfony3 - 资产在生产中无法正常工作

Symfony 3 - 无法将 token_storage 传递给订阅者

在命令 symfony 3.4 上获取项目目录

添加新捆绑包时出现Symfony3错误

当我的服务在其构造函数中有可注入对象时,如何将服务注入我的测试?